Nel seguente esempio, trova sed
le righe che iniziano con una a
o una c
e stampa il primo carattere di quella riga ( a
o 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
Tuttavia, vengono stampate anche le linee che non corrispondono al motivo. Come faccio a dire sed
di omettere le linee che non corrispondono al modello? Posso ottenere l'effetto desiderato combinandolo con grep
(come segue) ma vorrei sapere se sed
riesco a ottenere questo "da solo".
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c