Je peux filtrer les 500 dernières lignes à l'aide de la queue ou de la GREP Quelle est la commande équivalente pour utiliser awk p> Comment puis-je ajouter aucune ligne dans la commande ci-dessous p>
3 Réponses :
Pourriez-vous s'il vous plaît essayer suivi.
awk '/ERROR/{print FNR,$0}' Input_file
Comme vous n'avez pas eu d'échantillon de données à tester, je vais montrer avec des numéros seulement en utilisant si vous souhaitez filtrer les données ajouter par exemple expliqué: p> SEQ 1 10 code>. Celui-ci stocke Dernier
n code> enregistrements et les imprime à la fin:
/ error / code> avant
{a [++ c] = 0 $; ... code>. p>
Il pourrait être plus facile d'utiliser a [nr% n] = 0 $ code>, puis
pour (i = nr + 1; i <= nr + n; i ++) si (a [i% n ] ~ / Error /) Imprimer A [I% N] CODE> Je ne sais pas si cela sera plus rapide (
Supprimer code> vs
% code>)
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É
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. avec explication P> sed '$-500,$ {/ERROR/ p}' my_log
Dupliqué possible de Mettre en œuvre la queue avec AWK