в следующем примере, sed
соответствует строкам, начинающимся с a
или c
и печатает первый символ этой строки (a
или c
):
$ echo "ag
bh
ci
dj
ek
fl" | sed 's/(a|c).//' # Matches lines starting with 'a' or 'c'.
output:
a
bh
c
dj
ek
fl
однако строки, которые не соответствуют шаблону, также печатаются. Как мне рассказать sed
чтобы исключить строки, которые не соответствуют шаблону? Я могу получить желаемый эффект, комбинируя его с grep
(как следует), но я хотел бы знать, если sed
можно добиться того, что "по себя."
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/(a|c).//'
output:
a
c