• # syntaxe ? ou idée à tester.

    Posté par . En réponse au message Sed sur plusieurs lignes. Évalué à 4.

    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.