0
votes

Filtrer les journaux avec AWK pour 100 dernières lignes

Je peux filtrer les 500 dernières lignes à l'aide de la queue ou de la GREP xxx

Quelle est la commande équivalente pour utiliser awk

Comment puis-je ajouter aucune ligne dans la commande ci-dessous xxx


1 commentaires

3 Réponses :


2
votes

Pourriez-vous s'il vous plaît essayer suivi.

awk '/ERROR/{print FNR,$0}' Input_file


0 commentaires

2
votes

Comme vous n'avez pas eu d'échantillon de données à tester, je vais montrer avec des numéros seulement en utilisant SEQ 1 10 . Celui-ci stocke Dernier n enregistrements et les imprime à la fin: xxx

si vous souhaitez filtrer les données ajouter par exemple / error / avant {a [++ c] = 0 $; ... .

expliqué: xxx


4 commentaires

Il pourrait être plus facile d'utiliser a [nr% n] = 0 $ , puis pour (i = nr + 1; i <= nr + n; i ++) si (a [i% n ] ~ / Error /) Imprimer A [I% N] Je ne sais pas si cela sera plus rapide ( Supprimer vs % )


Si les 100 derniers enregistrements traités n'avaient aucune ligne d'erreur unique, il n'y aurait pas de sortie - si ma rencontre, l'esprit, me sert à droite.


C'est correct, mais ce serait l'analogue à l'OP.


Droite. N'a même pas dérangé la lecture de l'OP. Vous savez ce que nous pensons des ops. :RÉ



2
votes

awk ne connaît pas la fin du fichier avant de changer de fichier de lecture, mais vous pouvez lire Twhice le fichier, première fois pour trouver la fin, deuxième pour traiter la ligne dans la portée. Vous pouvez également garder la x dernière ligne dans un tampon, mais il est un peu lourd en mémoire de mémoire et processus. Notez que le fichier doit être mentionné deux fois à la fin de cela. XXX PRE>

avec explication P>

sed '$-500,$ {/ERROR/ p}' my_log


0 commentaires