Stimmt im folgenden Beispiel sed
mit Zeilen überein, die mit einem a
oder a beginnen, c
und gibt das erste Zeichen dieser Zeile ( a
oder c
) aus:
$ 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
Die Linien, die nicht zum Muster passen, werden jedoch auch ausgedruckt. Wie kann ich sed
die Linien weglassen, die nicht zum Muster passen? Ich kann den gewünschten Effekt erzielen, indem grep
ich ihn mit (wie folgt) kombiniere, aber ich würde gerne wissen, ob sed
dies "von selbst" erreicht werden kann.
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c