grep: saída da linha específica após a partida

1

Existe uma maneira, usando o grep, para produzir a linha que cai um número específico de linhas após a correspondência ser encontrada? Por exemplo, quero mostrar a linha com uma partida, a 8ª linha após a partida e a 17ª linha após a partida. Isso é possível?

Eu sei que posso produzir as próximas 17 linhas usando grep -A17 , mas quero saber se consigo obter a linha útil sem tudo entre elas.

    
por ewok 27.01.2015 / 16:57

1 resposta

2

Experimente a tubulação para awk blah | grep stuff -A17 | awk "NR==1{print} NR==8{print} NR==17{print;exit}" Isto produzirá apenas a 1ª, a 8ª e a 17ª linhas.

Se você quiser incluir padrões de repetição, use o operador mod (%)

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

    
por 27.01.2015 / 17:40

Tags