249 votes

Rapide commande unix pour afficher des lignes spécifiques au milieu d’un fichier ?

Essayez de déboguer un problème avec un serveur et mon seul fichier journal est un journal de 20 go fichier (sans les horodatages même! Pourquoi les gens utilisent - System.out.println() , comme l'exploitation forestière? Dans la production?!)

L'utilisation de grep, j'ai trouvé une zone du fichier que j'aimerais prendre un coup d'oeil, ligne 347340107.

Autre que de faire quelque chose comme

head -<$LINENUM + 10> filename | tail -20

... qui nécessiterait head de lire la première 347 millions de lignes du fichier de log, il est facile et rapide de la commande qui permette de vidage de lignes 347340100 - 347340200 (par exemple) à la console?

mise à jour j'ai totalement oublié que grep pouvez imprimer le contexte autour d'un match ... cela fonctionne bien. Merci!

454voto

Sklivvz Points 16412

J’ai trouvé deux autres solutions si vous connaissez le numéro de ligne, mais rien d’autre (pas de grep possible) :

En supposant que vous avez besoin de lignes 20 à 40,

ou

140voto

WCC Points 311
<pre><code></code><p><em><strong>méthode 3 efficace sur des fichiers volumineux</strong></em></p><p>moyen le plus rapide pour afficher des lignes spécifiques</p></pre>

26voto

unwind Points 181987

Euh, je suis content que vous ayez résolu le problème, mais si vous avez d'abord été sceptique à l'encontre de l'aide d' head parce que c'est ineffient de lire tous les inintéressant de données avant de le frapper, alors ... n'est-ce pas grep également forcé à lire les données?

Je suis assez confiant qu'il est, il n'y a pas de formule magique raccourci que cela peut prendre pour trouver le frapper sans lire les données, à la recherche pour elle. Si vous savez déjà à l'avance où le hit est, juste sauter les lignes (avec head) semble plus efficace que d'essayer de faire correspondre à chaque ligne (avec grep).

23voto

itsmatt Points 18905

Qu'en est-il de :

Je n’a pas le tester, mais je pense que cela fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X