grep: genera una línea específica después de la coincidencia

grep: genera una línea específica después de la coincidencia

¿Hay alguna manera, usando grep, de generar la línea que cae en un número específico de líneas después de que se encuentra la coincidencia? Por ejemplo, quiero generar la línea con una coincidencia, la octava línea después de la coincidencia y la 17ª línea después de la coincidencia. es posible?

Sé que puedo generar las siguientes 17 líneas usando grep -A17, pero quiero saber si puedo obtener la línea útil sin todo lo intermedio.

Respuesta1

Pruebe la tubería aawk blah | grep stuff -A17 | awk "NR==1{print} NR==8{print} NR==17{print;exit}" Esto generará solo las líneas 1, 8 y 17.

Si desea incluir patrones repetidos, puede utilizar el operador mod (%)

awk "(NR-1)%17 == 0{print} (NR-8)%17 == 0{print} (NR-17)%17 == 0{print}"

información relacionada