Ajouter texte à la fin d'une ligne
Résolu
simo
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
A voir également:
- Ajouter une ligne dans un fichier linux
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
6 réponses
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/' plopnon seulement le fichier sera modifié mais une sauvegarde sera automatiquement générée.
;-))
Re-
Pour les variables il faut utiliser des "double-quotes" autour de l'expression :
Pour les variables il faut utiliser des "double-quotes" autour de l'expression :
sed "/^$var1/ s/.*/&,$var2/" plopou les intégrées dans l'expression en les excluants :
sed '/^'"$var1"'/ s/.*/&,'"$var2"'/' plop;-))
ç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?!!
var1=cc
var2=toto
sed '/^$var1/ s/.*/&,$var2/' plop
ça ne modifie pas le contenu?!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question