Bonjour,

Je suis un peu perdu, je dois écrire un script pour insérer une ligne dans un fichier.
Je dois impérativement le faire dans un script sh.
J'ai sed dans mon environnement mais sed -i ne fonctionne pas : option illégal...

Cette ligne contient des espaces et des caractères spéciaux : voici un exemple de ligne "toto::toto tata()" à la ligne 3

J'ai essayé avec sed mais je ne parviens pas.

J'ai essayé avec perl ca marche bien si la ligne n'a pas d'espace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#!/bin/bash
 
ligne="toto::toto tata()"
num_ligne=3
fichier="test.txt"
perl -i.bak -lpe'print "'${ligne}'" if $.=='${num_ligne}'' ${fichier}
Avec cette exemple j'obtiens ce message :
Can't find string terminator '"' anywhere before EOF at -e line 1.
Du coup si quelqu'un peut m'aider ce serait génial.
Merci d'avance.