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).