Code:
1
2 awk '$1 ~ /^abcd/{ $2=$2"fr" } { print } ' Fichier.txt
Version imprimable
Code:
1
2 awk '$1 ~ /^abcd/{ $2=$2"fr" } { print } ' Fichier.txt
C'est fait :)
Et avec un peu de chance, il va encore s'apercevoir que des fichiers ont déjà été modifiés à la main et donc il ne faudra rajouter le ".fr" que s'il n'a pas déjà été rajouté...:mouarf:
Magique :ccool:
et si on veut par exemple exclure les colonnes qui contiennent déjà ce "fr" à la fin( comme la première ligne par exemple)? comment faire?
j'ai essayé le " !s ", mais j'étais perdu
Bonjour,
Si des lignes ont déjà été modifiées, la commande awk change juste un peu:
Edit: ".fr" à contrôler sur le deuxième champ, merci disedorgueCode:awk '$1 ~ /^abcd/ && ! $2 ~ /\.fr$/ {$2=$2 ".fr"} {print}' Fichier.txt
Il faut contrôler le .fr sur le deuxième champs pas le premier ;)
Qui si colle pour le sed ??? :aie:
Il n'y a rien à faire, je trouve que awk est plus lisible mais c'est un bel exercice
Allez, je suis taquin: :aie:
et ce n'est pas les "\t" dans le echo...Code:
1
2 echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*fr/b;s/[^\t]*\t[^\t]*/&-fr/}' abcd frbb @cccc
une qui fonctionne (à priori):;)
Code:
1
2 $ echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*-fr\t/!s/\([^\t]*\t[^\t]*\)\t/\1-fr\t/}' abcd frbb-fr @cccc
:salo:
Sinon, juste un chtit sed '/^abcd/{/[^\t]*\t[^\t]*fr\b/b;s/[^\t]*\t[^\t]*/&-fr/}' devrait suffire :pingoin2:Citation:
une qui fonctionne (à priori):;)
Code:
1
2 $ echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*-fr\t/!s/\([^\t]*\t[^\t]*\)\t/\1-fr\t/}' abcd frbb-fr @cccc
:bravo:
manque juste leBon, allez, maintenant une version pure builtin bash:Code:/[^\t]*\t[^\t]*-fr\b/
Code:
1
2
3
4
5
6 $ cat plip abcd bbbb-fr @cccc abcd bbbb @cccc abcd eeee @cccc xaee bbbb @cccc abcd frddfr @cccc
:yaisse3:Code:
1
2
3
4
5
6 $ while read a b c ; do case $a in abcd) case $b in *-fr) echo -e "$a\t$b\t$c" ;; *) echo -e "$a\t$b-fr\t$c" ;; esac ;; *) echo -e "$a\t$b\t$c" ;; esac; done <plip abcd bbbb-fr @cccc abcd bbbb-fr @cccc abcd eeee-fr @cccc xaee bbbb @cccc abcd frddfr-fr @cccc