4 votes

Liste des dix premières et dernières lignes d'un mot correspondant dans un fichier

Comment lister les 10 lignes supérieures ou inférieures à partir de la ligne qui correspond au mot "erreur" dans un fichier ?

J'utilise grep 'error' /var/log/logfile.log > errors pour imprimer et sauvegarder les lignes qui correspondent au mot 'erreur' dans le fichier appelé 'erreurs'. Comment puis-je modifier cela pour répondre à mes besoins ? Quelqu'un a-t-il une idée ?

4voto

bbaja42 Points 2951

Affichage des lignes avant/après/autour de la correspondance à l'aide de grep -A, -B et -C

-A est l'option qui imprime les N lignes spécifiées après la correspondance comme indiqué ci-dessous.

-B est l'option qui imprime les N lignes spécifiées avant la correspondance.

-C est l'option qui imprime les N lignes spécifiées avant la correspondance. Dans certaines occasions, vous pouvez vouloir que la correspondance apparaisse avec les lignes des deux côtés. Cette option montre N lignes dans les deux côtés (avant et après) de la correspondance.

Fuente: http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/ (Je vous recommande également de lire l'article complet du blog)

Ainsi, la commande devrait être la suivante grep -C 10 'error'

0 votes

Génial ! !!. C'est vraiment plus que ce que je veux et le lien est vraiment utile. Encore une petite chose, un fichier peut avoir plusieurs lignes correspondant au mot et il est possible de différencier/séparer avec des hachages ou des espaces ou quelque chose.

0 votes

Merci. Vous pouvez accepter la réponse comme acceptée. En ce qui concerne votre question, essayez-vous de faire une correspondance sélective ? Je ne suis pas sûr que cela puisse être fait en grep en quelque sorte sans exemple. Je vous suggère de poser une autre question en expliquant avec un exemple pour que les autres puissent vous aider.

0 votes

@user3215 si vous voulez la première correspondance ou la dernière correspondance, essayez de passer par le pipeline head o tail respectivement. Eg grep -C 10 'error'|head -n 10

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X