Remplacement de caracteres dans une ligne
bonjour,
voila mon probleme j'ai un fichier avec plusieurs lignes de ce type :
Citation:
xx xx;yy yyy;eee ee;100 000;20 000
et j'aimerais pouvoir supprimer les espaces mais que pour les 2 derniers champs. J'ai pensé utiliser sed ou tr mais je ne sais/trouve pas si on peut lui demandser de remplacer a partir d'un certain champs dans une ligne..
quelqu'un peut 'il m'aider .?
merci beaucoup
Re: [shell] remplacement de caracteres dans une ligne
Citation:
Envoyé par tibyann
J'ai pensé utiliser sed ou tr mais je ne sais/trouve pas si on peut lui demandser de remplacer a partir d'un certain champs dans une ligne...
J'aurai plutôt tendance à utiliser awk pour ce genre de traitement.
On peut indiquer le séparateur de champs, en entrée comme en sortie, pour indiquer que c'est un ;
On peut choisir les champs sur lesquels travailler, numérotés de 1 à NF
La modification d'un champ est répercutée sur l'ensemble de la ligne contenue dans $0
On a une substitution par expression régulière possible sur les champs...
Ca donnerait un truc du genre :
Code:
echo "xx xx;yy yyy;eee ee;100 000;20 000" | awk -F ";" -vOFS=";" '{ gsub (/ /, "_", $(NF-1)); print $0 }'
A complèter ...