Comment grep et imprimer les lignes N suivantes après le coup?

J'aimerais grep pour une occurrence dans un fichier texte, puis imprimer les lignes N suivantes après chaque occurrence. Des idées?

    Grep a les options suivantes qui vous permettront de faire cela (et des choses comme ça). Vous voudrez peut-être consulter la page man pour plus d'informations:

    • -A num Print num lignes de contexte arrière après chaque correspondance. Voir aussi les options -B et -C.

    • -B num Impression des lignes de contexte avant chaque match. Voir aussi les options -A et -C.

    • -C [num] Imprimer nombre de lignes de contexte avancé et de retour entourant chaque match. La valeur par défaut est 2 et équivaut à -A 2 -B 2. Remarque: aucun espace blanc ne peut être donné entre l'option et son argument.

    Si vous avez GNU grep , c'est l'option -A / -A --after-context . Sinon, vous pouvez le faire avec awk .

     awk '/regex/ {p = N} p > 0 {print $0; p--}' filename 

    Utilisez l'argument -A pour grep pour spécifier le nombre de lignes au-delà de la correspondance à la sortie.

    Imprimez N lignes après les lignes correspondantes

    Vous pouvez utiliser grep avec -A n option pour imprimer N lignes après correspondance des lignes.

    Par exemple:

     $ cat mytext.txt Line1 Line2 Line3 Line4 Line5 Line6 Line7 Line8 Line9 Line10 $ grep -wns Line5 mytext.txt -A 2 5:Line5 6-Line6 7-Line7 

    Autres options connexes:

    Imprimez des lignes N avant les lignes correspondantes

    En utilisant l'option -B n , vous pouvez imprimer des lignes N avant d'aligner les lignes.

     $ grep -wns Line5 mytext.txt -B 2 3-Line3 4-Line4 5:Line5 

    Imprimer les lignes N avant et après les lignes correspondantes

    En utilisant l'option -Cn, vous pouvez imprimer N lignes avant et après les lignes correspondantes.

     $ grep -wns Line5 mytext.txt -C 2 3-Line3 4-Line4 5:Line5 6-Line6 7-Line7