Je me bats un peu parce que je dois append des guillemets à la première ligne et aux deux premières colonnes d’un fichier CSV, comme illustré ici:
Consortingbution
var1,var2,var3,var4 x1,x2,x3,x4 y1,y2,y3,y4
Sortie:
"var1","var2","var3","var4" "x1","x2",x3,x4 "y1","y2",y3,y4
J’ai essayé pendant un moment maintenant, et la chose la plus proche de moi est:
# add single quotes around columns of csv files sed "s/[[:alnum:]]*/'&'/g" input.csv >output1.csv # transform the single quotes into double quotes tr "'" '"' output2.csv
Mais cela met des guillemets autour de toutes les colonnes comme ceci:
"var1","var2","var3","var4" "x1","x2","x3","x4" "y1","y2","y3","y4"
Êtes-vous des utilisateurs de ligne de commande plus expérimentés, capables de m’aider?
Vous pouvez qualifier la substitution pour des numéros de ligne particuliers
$ sed '1s/[^,]*/"&"/g; 2,$s/\([^,]*\),\([^,]*\)/"\1","\2"/' ip.txt "var1","var2","var3","var4" "x1","x2",x3,x4 "y1","y2",y3,y4
1s/[^,]*/"&"/g
ajoute des guillemets à tous les champs de la première ligne 2,$s/\([^,]*\),\([^,]*\)/"\1","\2"/
ajoutez des guillemets uniquement pour les deux premiers champs de la 2ème ligne à la fin du fichier