#1 Le 23/03/2014, à 14:33
- Link_Octree
Remplacer une chaine de caractères par un fichier txt entier avec sed
Bonjour,
Après une heure de galère/google, je me résoud à poser la question ici:
Je souhaites remplacer la chaine "a_remplacer" du fichier texte squelette.txt par plusieurs autres lignes contenues dans le fichier variable.txt.
squelette.txt
0
a_remplacer
4
variable.txt
1
2
3
J'ai essayé plusieurs solutions (mon séparateur est la charactère dièse puisque mon fichier devrait contenir des slash à termes):
variable=`cat variable.txt`
sed -i "s#a_remplacer#$variable#g" squelette.txt
variable=`cat variable.txt`
sed -i "s#a_remplacer#${variable}#g" squelette.txt[
sed -i "s#a_remplacer#`cat variable.txt`#g" squelette.txt
Le fait que contienne plusieurs lignes ne semble pas plaire à sed qui me renvoi le message suivant:
sed: -e expression #1, char 15: unterminated `s' command
Si quelqu'un a une idée, merci d'avance
Hors ligne
#2 Le 23/03/2014, à 14:38
- casperfr
Re : Remplacer une chaine de caractères par un fichier txt entier avec sed
Bonjour,
suite a un de mes posts
http://forum.ubuntu-fr.org/viewtopic.php?id=1508021
Postmortem m'a proposé la solution suivante,
sed -i -e '/a_remplacer/ r variable.txt' -e '//d' squelette.txt
peut etre que cela peut fonctionner pour ton usage,
il faut simplement que le fichier variable.txt et squelette soit dans le meme dossier,
Bon courage.
Hors ligne
#3 Le 23/03/2014, à 15:20
- credenhill
Re : Remplacer une chaine de caractères par un fichier txt entier avec sed
hello
autre méthode
$ sed 's/a_remplacer/cat variable.txt/e' squelette.txt
0
1
2
3
4
Hors ligne
#4 Le 24/03/2014, à 15:07
- Link_Octree
Re : Remplacer une chaine de caractères par un fichier txt entier avec sed
Merci @casperfr & @credenhill: vos deux méthodes fonctionnent parfaitement
Hors ligne