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

rubo77
la source

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.

Golfe Persique
la source
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.

Santosh
la source