Sinon, je m'étais dit de simplement utiliser la commande i :
sed -e '/^[%$]/ima ligne\n;Q'
Le Q étant sensé faire arrêter le script dès que la commande à trouvé une ligne sur laquelle s'exécuter. Mais comment faire comprendre à sed qu'il s'agit de la commande Q (ou q) et non pas d'un simple caractère ????
en utilisant la syntaxe prevue pour.
c'est soit
sed -i -e '/^[%$]/ima ligne\n;\Q' monfichier
que j'ai deja vu dans des scripts.
soit
sed -i -e 's/^[%$]/ima ligne\n;/' monfichier
qui va peut-etre de le faire pour chaque ligne, mais une seule fois par ligne.
sinon dans un cas comme le tiens, je me "simplifie" la vie en remettant mon fichier sur une seule ligne (en remplacant les retour à la ligne par une chaine de caractere que je connais)
puis en faisant le rechercher/remplacer qui ne se fera forcement sur une seule ligne,
puis en remplacant la chaine de caractere precedemment insérée pour remettre les retours à la ligne.
# syntaxe ? ou idée à tester.
Posté par NeoX . En réponse au message Sed sur plusieurs lignes. Évalué à 4.
en utilisant la syntaxe prevue pour.
c'est soit
que j'ai deja vu dans des scripts.
soit
qui va peut-etre de le faire pour chaque ligne, mais une seule fois par ligne.
sinon dans un cas comme le tiens, je me "simplifie" la vie en remettant mon fichier sur une seule ligne (en remplacant les retour à la ligne par une chaine de caractere que je connais)
puis en faisant le rechercher/remplacer qui ne se fera forcement sur une seule ligne,
puis en remplacant la chaine de caractere precedemment insérée pour remettre les retours à la ligne.