[shell] insertion avec sed et conservation \
Résolu
Bonjour,
J'essaie d'insérer dans une ligne dans un fichier.
J'utilise pour cela la commande : sed "${i}i$(echo $ligne2)"
où i est la variable où je stocke le numéro de la ligne (où insérer)
et ligne2 la variable où je stocke le contenu à insérer.
Lorsque je fais : echo $ligne2 j'ai bien le bon contenu qui s'affiche sur la sortie standard.
Mais lorsque je vérifie l'insertion dans le fichier j'ai des caractères bizarres qui s'affichent et tous les \ ont disparu de ma ligne.
Est-ce que quelqu'un saurait m'aider ?
Merci
EDIT: j'ai tenté en doublant les \ dans ligne2 mais ça ne fonctionne pas
EDIT2: version de sed: je sais pas mais le -i ne fonctionne pas
je suis en shell bash
variable i contient 112 et ma ligne2 {\pard \qr \pvpg\phpg\posx10016\posy5042\absw614 \absh-223 {\f1\fs16 \cf1 \b 6}\par}
J'essaie d'insérer dans une ligne dans un fichier.
J'utilise pour cela la commande : sed "${i}i$(echo $ligne2)"
où i est la variable où je stocke le numéro de la ligne (où insérer)
et ligne2 la variable où je stocke le contenu à insérer.
Lorsque je fais : echo $ligne2 j'ai bien le bon contenu qui s'affiche sur la sortie standard.
Mais lorsque je vérifie l'insertion dans le fichier j'ai des caractères bizarres qui s'affichent et tous les \ ont disparu de ma ligne.
Est-ce que quelqu'un saurait m'aider ?
Merci
EDIT: j'ai tenté en doublant les \ dans ligne2 mais ça ne fonctionne pas
EDIT2: version de sed: je sais pas mais le -i ne fonctionne pas
je suis en shell bash
variable i contient 112 et ma ligne2 {\pard \qr \pvpg\phpg\posx10016\posy5042\absw614 \absh-223 {\f1\fs16 \cf1 \b 6}\par}
3 réponses
-
ContributeurSalut,
Merci de nous afficher le fichier référence ainsi que le contenu des 2 variables, s'il ta plaît, merci ;-))
Quelle distrib ? Quel shell ? Quelle version de "sed" ?
-
En fait il me remplace dans la ligne
a par (BEL sur fond noir)
f par (FF sur fond noir)
cf par (ACK sur fond noir) -
J'ai trouvé, il faut doubler les \ sauf ceux précédent a, f et cf qu'il faut laisser simple.