En el siguiente ejemplo, sedcoincide con las líneas que comienzan con una ao a ce imprime el primer carácter de esa línea ( ao 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
Sin embargo, las líneas que no coinciden con el patrón también se imprimen. ¿Cómo le digo sedque omita las líneas que no coinciden con el patrón? Puedo obtener el efecto deseado combinándolo con grep(como sigue), pero me gustaría saber si sedpuedo lograrlo "por sí mismo".
$ echo "ag
bh
ci
dj
ek
fl" | grep '[ac]' | sed 's/\(a\|c\)./\1/'
output:
a
c
regex
sed
bash-scripting
freitass
fuente
fuente

Respuestas:
Use la
no-printbandera (-n) e imprima explícitamente los comandos sustitutos exitosos (s///p):fuente