Bonsoir,
sed peut fonctionner avec des adresses, soit numériques (ligne, ou
décallage par rapport à la balise de début), soit des regex
Grossomodo cela ressemble à
sed "/balisededebut/,/balisedefin/ s/^/debutdeligne/p"
On peut combiner balise regex et numéro de ligne
$cat tst
un
deux
trois
quatre
cinq
six
$ sed "/deux/,/cinq/ s/^/debut_/" tst
un
debut_deux
debut_trois
debut_quatre
debut_cinq
six
$ sed "/deux/,+2 s/^/debut_/" tst
un
debut_deux
debut_trois
debut_quatre
cinq
six
$ sed "/deux/,+4 s/^/debut_/" tst
un
debut_deux
debut_trois
debut_quatre
debut_cinq
debut_six
$ sed "/deux/,4 s/^/debut_/" tst
un
debut_deux
debut_trois
debut_quatre
cinq
six
Notez bien les nuances, et le fait que les balises de limites soient
traitées.
Pierre
Le 07/03/2017 à 18:59, Patrick Dupre a écrit :
> Bonsoir,
>
> J'ai besoin d'un peu d'aide !
> J'ai un fichier que je voudrais transformer.
> C'est assez simple, mais je n'ai pas la solution.
> Voila,
> Je veux ajouter un nouveau caractere en debut de ligne jusqu'a une
> certaine ligne (comprise) que je sais identifier.
> Cela doit etre possible avec un sed ou je "substitue" le premier
> caractere (^.) par un autre caracter et lui-meme.
> sed -ne "s/^./\#&/p"
>
> Mais comment stopper la subsitution ?
>
> Est-ce que sed peut travailler en entree sortie, cad editer le ficher
> lu ?
>
> Merci.
>
> ===========================================================================
> Patrick DUPRÉ | | email: pdupre@???
> Laboratoire de Physico-Chimie de l'Atmosphère | |
> Université du Littoral-Côte d'Opale | |
> Tel. (33)-(0)3 28 23 76 12 | | Fax: 03 28 65 82 44
> 189A, avenue Maurice Schumann | | 59140 Dunkerque, France
> ===========================================================================
>