• [^] # Re: à l'ancienne

    Posté par (site web personnel) . En réponse au message inserer des lignes en debut de fichier. Évalué à 1.

    Je crains que la seconde solution ne marche pas, quand on insère plusieurs lignes avec la commande i, toutes les lignes sauf la dernière doivent être terminées par un \ ; il faudrait aussi entourer la construction $(...) par des doubles quotes pour empêcher le shell de la découper aux espaces...

    Par ailleurs, la commande 1i... va se retrouver comme argument de l'option -i, il faut insérer -e entre l'option -i sans argument et la commande Sed.


    La première solution est évidemment plus simple (et plus lisible :), mais on peut, avec l'aide de Bash, emboîter deux (GNU) Seds :


    ~ $ sed -i.old -e '1{h;r '<(sed -e '/^t/,$!d' fic2)'
    d};2{x;G}' fic1

    ~ $ cat fic2
    === fic2 ===

    alpha
    bravo
    tagada
    delta

    ~ $ diff fic1.old fic1
    0a1,3
    > tagada
    > delta
    >