Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sed, substituer une ligne inadressable?

3 réponses
Avatar
frederic
Est-il possible de faire en sorte que sed substitue la première ligne
vide rencontrée, inadressable, par un autre motif et qu'il sorte
immédiatement après? Autrement dit, substitue la première ligne vide et
quitte ensuite....

--
Frédéric

3 réponses

Avatar
Pascal Bourguignon
writes:

Est-il possible de faire en sorte que sed substitue la première ligne
vide rencontrée, inadressable, par un autre motif et qu'il sorte
immédiatement après? Autrement dit, substitue la première ligne vide et
quitte ensuite....


C'est à dire que s'il quitte ensuite, il ne copie pas le reste du fichier!

sed -e '/^$/{' -e 's/.*/substitution/' -e q -e '}' <<EOF
abc
def

ghi

hkm

nop
EOF

ne sort que:

abc
def
substitution



Pourquoi veux tu absolument sed?
Avec awk, c'est plus facile:

awk 'BEGIN{c=0;} /^$/{if(c==0){printf "substitutionn";c++;next;}} {print $0}' <<EOF
abc
def

ghi

hkm

nop
EOF

sort:

abc
def
substitution
ghi

hkm

nop


--
__Pascal Bourguignon__ http://www.informatimago.com/

"By filing this bug report you have challenged the honor of my
family. Prepare to die!"

Avatar
Stephane Chazelas
2006-01-28, 17:51(+01), :
Est-il possible de faire en sorte que sed substitue la première ligne
vide rencontrée, inadressable, par un autre motif et qu'il sorte
immédiatement après? Autrement dit, substitue la première ligne vide et
quitte ensuite....


sed -e .b -e 's/^/whatever/' -e q

--
Stéphane

Avatar
Stephane Chazelas
2006-01-28, 18:51(+00), Stephane Chazelas:
2006-01-28, 17:51(+01), :
Est-il possible de faire en sorte que sed substitue la première ligne
vide rencontrée, inadressable, par un autre motif et qu'il sorte
immédiatement après? Autrement dit, substitue la première ligne vide et
quitte ensuite....


sed -e .b -e 's/^/whatever/' -e q


sed -e /./b -e 's/^/whatever/' -e q

sorry.

--
Stéphane