2008-04-11, 14:42(+02), Olivier Miakinen:
[...]
>> sed '
>> 1,/<\/html>/!d
>> /<html>/,$!d'
>>
>> A condition que "</html>" ne soit pas sur la premiere ligne.
>
> Mais là, comment se comportera-t-il s'il y a plusieurs séquences <html>
> ... </html> ?
[...]
sed, c'est pas compliqué. Dans address1,address2, sed leve un
drapeau quand il atteint address1 et le rabaisse (apres le
processing de la ligne) quand il trouve address2. Et l'action
correspondante est executee quand le drapeau est haut (ou bas
avec !).
1,/<\/html>, le drapeau est up des la premiere ligne et est
rabaissé au premier </html>.
/<html>/,$, le drapeau est levé au premier <html>
Attention, si tu fais:
sed '
/<html>/,$!d
1,/<\/html>/!d'
L'addresse 1 ne sera jamais trouvee si <html> n'est pas sur la
premiere ligne, donc la second expression ne matchera pas.
--
Stéphane