Je voudrais grep pour une occurrence dans un fichier texte, puis imprimer les N lignes suivantes après chaque occurrence trouvée. Des idées?
la source
Je voudrais grep pour une occurrence dans un fichier texte, puis imprimer les N lignes suivantes après chaque occurrence trouvée. Des idées?
Grep a les options suivantes qui vous permettront de le faire (et ainsi de suite). Vous voudrez peut-être consulter la page de manuel pour plus d'informations:
-A nombre Imprime les lignes numériques du contexte final après chaque match. Voir aussi les options -B et -C.
-B num Imprime les lignes numériques du contexte principal avant chaque correspondance. Voir aussi les options -A et -C.
-C [num] Affiche les lignes numériques des contextes de début et de fin entourant chaque correspondance. La valeur par défaut est 2 et est équivalente à -A 2 -B 2. Remarque: aucun espace ne peut être laissé entre l'option et son argument.
Si vous avez GNU grep
, c'est l' option -A
/ --after-context
. Sinon, vous pouvez le faire avec awk
.
awk '/regex/ {p = N}
p > 0 {print $0; p--}' filename
awk '/regex/{p=2} p > 0 {print $0; p--}' filename
- fonctionne, pas le vôtre.Utilisez l'
-A
argument pourgrep
spécifier le nombre de lignes au-delà de la correspondance à afficher.la source
Imprimer N lignes après les lignes correspondantes
Vous pouvez utiliser
grep
avec-A n
option pour imprimer N lignes après les lignes correspondantes.Par exemple:
Autres options connexes:
Imprimer N lignes avant les lignes correspondantes
En utilisant
-B n
option, vous pouvez imprimer N lignes avant les lignes correspondantes.Imprimer N lignes avant et après les lignes correspondantes
En utilisant
-C n
option, vous pouvez imprimer N lignes avant et après les lignes correspondantes.la source