Comment extraire une ligne d'un fichier et les 5 lignes suivantes sous Linux

Supposons que vous cherchiez parmi les fichiers setenv.sh et setenv.sh.tpl la ligne contenant

Djava.rmi.server.hostname

et que vous souhaitez afficher cette ligne ainsi que les 5 lignes suivantes. Alors utilisez :

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

Ici, -I ignore les fichiers binaires.

Si vous souhaitez ajouter 2 lignes supplémentaires avant, utilisez :

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

Au lieu de -B2 -A5, vous pouvez utiliser -C5 si vous souhaitez 5 lignes avant et 5 lignes après.