Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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

En 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 smile

Hors ligne