Ajouter texte à la fin d'une ligne [Résolu/Fermé]

Signaler
-
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
-
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

6 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 756
Salut,
[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.

;-))
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56954 internautes nous ont dit merci ce mois-ci

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 756
Re-

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 :)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 756
De rien ;-))