Dans l'exemple suivant, fait sed
correspondre les lignes commençant par un a
ou un c
et imprime le premier caractère de cette ligne ( a
ou c
):
$ echo "ag
bh
ci
dj
ek
fl" | sed 's/\(a\|c\)./\1/' # Matches lines starting with 'a' or 'c'.
output:
a
bh
c
dj
ek
fl
Cependant, les lignes qui ne correspondent pas au motif sont également imprimées. Comment puis-je dire sed
d'omettre les lignes qui ne correspondent pas au modèle? Je peux obtenir l'effet souhaité en le combinant avec grep
(comme suit) mais je voudrais savoir si je sed
peux y parvenir "par lui-même".
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c