Le 12/02/2020 à 14:13, guilde.nt@??? a écrit :
>> $ awk -F \; 'NR==1 {print ; next} {gsub(" ","",$8); gsub("+33","70",$8);
>> gsub(" ","",$9); gsub("+33","70",$9); gsub(" ","",$10);
>> gsub("+33","70",$10); print $1";"$2";"$3";"$4";"$5";"$6";"$7";"$8";"$9";"$10";"$11";"$12";"$13";"$14";"$15";"$16";"$17";"$18";"$19";"$20";"$21";"$22";"$23";"$24";"$25";"$26";"$27";"$28";"$29";"$30";"$31";"$32";"$33";"$34";"$35";"$36";"$37}'
>> contacts.csv > test-contact.csv
>>
>> Cela fonctionne bien.
>>
>> Le seul souci, pour le print j'ai remis tous les $x.
>> Y-a-t-il une solution plus simple pour le print?
>
> $ awk -F \; -v OFS=\; '
> NR==1 {...
> 1 {
> gsub(...)
> ...
> print # imprime $0
> }
> '
>
> OFS : output field separator
>
Merci
-F Spécifie les séparateurs de champs (en entrée)
OFS separateur de champs pour la sortie
OFS, c'est ce qui me manquait. Maintenant le print sans rien derrière
fonctionne.
Je viens de trouver {FS=OFS=":"} que j'ai traduit par -v FS=OFS=\;
Je voulais mettre cette commande dans un bash où je donnerais en
paramètre le fichier en entrée ainsi que le séparateur de champ
j'aurais donc $1 le fichier et $2 le séparateur de champ.
Le séparateur de champ peut être ; , ou \t
Je viens de tester avec
separ=";"; awk -v FS=OFS=$separ
separ=","; awk -v FS=OFS=$separ
separ="\t"; awk -v FS=OFS=$separ
Je vais pouvoir mettre la commande dans mon script bash.
Merci
Anne
Anne