Como extrair uma linha de um arquivo e as 5 linhas seguintes no Linux

Suponha que você esteja procurando entre os arquivos setenv.sh e setenv.sh.tpl a linha contendo

Djava.rmi.server.hostname

e você precisa exibir essa linha e mais 5 linhas seguintes. Nesse caso, use:

find . -type f -name 'setenv.sh*' -exec grep -I -nH -A5 'Djava\\.rmi\\.server\\.hostname' {} \;

Aqui, -I ignora arquivos binários.

Se for necessário incluir mais 2 linhas acima, use:

find . -type f -name 'setenv.sh*' -exec grep -I -nH -B2 -A5 'Djava\\.rmi\\.server\\.hostname' {} \;

Em vez de -B2 -A5, você pode usar -C5 se quiser 5 linhas antes e 5 linhas depois.