Comment utiliser tail -f avec grep pour afficher les lignes environnantes


16

Je voudrais voir la sortie dans un fichier journal accueilli par un seul domaine mais aussi les deux lignes suivantes .

Exemple:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

cela montre toutes les lignes qui contiennent "mydomain.de" mais les informations importantes sont dans la ligne en dessous de la ligne, où le domaine est inclus

Réponses:


25

grep a des options supplémentaires pour définir le nombre de lignes avant et après le résultat:

  • -A (après)
  • -B (avant)
  • -C (contexte [avant + après])

Donc, dans votre cas, vous avez besoin de -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

la commande ci-dessus imprime les NUMBERlignes après YOURDOMAINdans le fichier.


Veuillez noter, cependant, qu'il s'agit d'une extension GNU. Si vous êtes sous Linux, vous avez grepcertainement cette option. Si vous ne l'êtes pas, vous feriez mieux de vérifier.
Leonid

9

Essayez de passer le nombre de lignes de contexte à grep.

| grep -C 5

imprimera 5 lignes avant et après le match.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.