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