Ajouter texte à la fin d'une ligne
Résolu
Bonjour,
Je voudrai ajouter une chaine à la fin d'une ligne précise dans un fichier texte comme suit :
fichier avant modifications :
aa=ch1,ch2,ch3
bb=ch1,ch2,ch3
cc=ch1,ch2,ch3
dd==ch1,ch2,ch3
exemple :
je voudrais localiser par exemple la ligne "cc=ch1,ch2,ch3" et ajouter la chaine "ch4" à la fin.
cc=ch1,ch2,ch3,ch4
et enfin sauvegarder les modifications dans le fichier.
fichier aprés modifications :
aa=ch1,ch2,ch3
bb=ch1,ch2,ch3
cc=ch1,ch2,ch3,ch4
dd==ch1,ch2,ch3
Je voudrai ajouter une chaine à la fin d'une ligne précise dans un fichier texte comme suit :
fichier avant modifications :
aa=ch1,ch2,ch3
bb=ch1,ch2,ch3
cc=ch1,ch2,ch3
dd==ch1,ch2,ch3
exemple :
je voudrais localiser par exemple la ligne "cc=ch1,ch2,ch3" et ajouter la chaine "ch4" à la fin.
cc=ch1,ch2,ch3,ch4
et enfin sauvegarder les modifications dans le fichier.
fichier aprés modifications :
aa=ch1,ch2,ch3
bb=ch1,ch2,ch3
cc=ch1,ch2,ch3,ch4
dd==ch1,ch2,ch3
Configuration: Windows XP Internet Explorer 7.0
6 réponses
-
ModérateurSalut,
[tmpfs]$ cat plop aa=ch1,ch2,ch3 bb=ch1,ch2,ch3 cc=ch1,ch2,ch3 dd==ch1,ch2,ch3 [tmpfs]$ sed '/cc/ s/.*/&,ch4/' plop aa=ch1,ch2,ch3 bb=ch1,ch2,ch3 cc=ch1,ch2,ch3,ch4 dd==ch1,ch2,ch3 [tmpfs]$
Si tu veux que ce soit permanent rajoute le switch "-i.BAK" à la commande "sed" :sed -i.BAK '/cc/ s/.*/&,ch4/' plop
non seulement le fichier sera modifié mais une sauvegarde sera automatiquement générée.
;-)) -
ModérateurRe-
Pour les variables il faut utiliser des "double-quotes" autour de l'expression :sed "/^$var1/ s/.*/&,$var2/" plop
ou les intégrées dans l'expression en les excluants :sed '/^'"$var1"'/ s/.*/&,'"$var2"'/' plop
;-))
-
Merci je vais l'essayer dans 5min :)
-
ça marche en mode ligne de commande, mais le problème c quand je veux lui passer des variables, ça ne marche plus!
var1=cc
var2=toto
sed '/^$var1/ s/.*/&,$var2/' plop
ça ne modifie pas le contenu?!! -
Merci bcp pr ton aide, ça marche :)
-
ModérateurDe rien ;-))