Problème de Performance avec l'analyse des fichiers journaux volumineux (~5) à l'aide de awk, grep, sed

Je suis actuellement en train de traiter les fichiers de log avec les dimensions approx. 5 go. Je suis assez nouveau à l'analyse des fichiers journaux et l'utilisation de UNIX bash, donc je vais essayer d'être aussi précis que possible. Lors de la recherche par le biais de fichiers journaux, je ne les suivants: fournir le numéro de la demande de chercher, puis, éventuellement, à fournir de l'action comme un filtre secondaire. Typique de commande ressemble à ceci:

fgrep '2064351200' example.log | fgrep 'action: example'

C'est très bien traiter avec des fichiers plus petits, mais avec un fichier journal qui est de 5 go, c'est insupportablement lent. J'ai lu en ligne, c'est génial à utiliser sed ou awk pour améliorer les performances (ou peut-être même une combinaison des deux), mais je ne suis pas sûr de savoir comment cela se fait. Pour exemple, l'utilisation de awk, j'ai un typique de commande:

awk '/2064351200/{print}' example.log

Fondamentalement, mon but ultime est de pouvoir imprimer/retour les enregistrements (ou de numéro de ligne) qui contiennent les chaînes (peut-être jusqu'à 4-5, et j'ai lu la tuyauterie est mauvais) pour correspondre dans un fichier journal efficacement.

Sur une note de côté, dans le shell bash, si je veux utiliser awk et faire un peu de traitement, comment est-il réalisé? Par exemple:

BEGIN { print "File\tOwner" }
{ print $8, "\t", \
$3}
END { print " - DONE -" }

Qui est assez simple script awk, et je suppose que il y a un moyen de le mettre en une seule ligne de commande bash? Mais je ne suis pas sûr de savoir comment la structure est.

Merci d'avance pour l'aide. Des acclamations.

awk ne sera pas plus rapide que le chaînage de canalisations de grep dans votre exemple. si vous effectuez beaucoup de recherches sur le même fichier de grande taille, vous pouvez l'enregistrer sur IO si vous le stocker en tant que .lzo
merci pour les conseils, mais si je dois effectuer la recherche sur un fichier journal qui est constamment mise à jour tout au long de la journée, je suis en supposant que cette technique n'est pas applicable? Depuis que j'aurais à mettre constamment à jour le fichier enregistré
Il y a un nouveau logiciel opensource de projet international-characters.com/icgrep c'est un "parallèle bitstream mise en œuvre". Je n'ai pas essayé le logiciel, mais il peut être rapide.

OriginalL'auteur Albert | 2011-08-25