unix sed – ¿Cómo agregar una línea después de la enésima aparición de una palabra clave usando sed?

Pregunta:

Usando sed, quiero agregar un cheque después de la enésima aparición

Aporte:

DCR
DCR
DCR

Producción:

DCR
DCR
check
DCR

¿Es posible usar sed?

Respuesta:

Con sed de GNU, puede reemplazar la enésima patrón en una línea

$ echo "foofoofoofoo" | sed 's/foo/&\nbar/2'
foofoo
barfoofoo

Sin embargo, para la enésima línea que contiene el patrón, awk es más fácil:

awk -v n=2 -v patt=foo '{print} $0 ~ patt && ++count == n {print "bar"}' <<END
foo1
foo2
foo3
foo4
END
foo1
foo2
bar
foo3
foo4

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım