Grep para uma palavra em um arquivo e mostra linhas abaixo e acima também? [duplicado]

4

Digamos que eu tenha um arquivo. Eu quero encontrar uma palavra específica nesse arquivo e mostrar a linha.

Existe uma maneira de fazer o acima, mas também incluir as linhas acima e abaixo de 10 da linha de resultado?

Como eu faria isso usando a linha de comando do Linux?

    
por David 20.05.2012 / 14:17

1 resposta

4

Suponha que seu arquivo seja chamado filename , sua expressão regular seja foo e você deseje imprimir linhas e linhas correspondentes em 10 linhas (acima e abaixo ) linhas correspondentes:

grep -C10 foo filename

Mais geralmente, para n linhas antes e depois das correspondências:

grep -Cn foo filename

Esta solução irá funcionar com o GNU grep (que o Ubuntu e praticamente todos os outros sistemas operacionais baseados em Linux). O sinalizador -C não é necessariamente suportado em todas as implementações grep , no entanto.

Para imprimir linhas somente antes ou somente após as correspondências, use as opções -Bn ou -An , em que n é o número de linhas que você deseja antes ou depois. Para obter mais informações sobre uma maneira alternativa de fazer isso, consulte esta questão relacionada (kudos a fossfreedom por perceber a semelhança).

    
por Eliah Kagan 20.05.2012 / 15:21

Tags