it-swarm.com.de

Linux sucht nach Word und zeigt die gesamte Zeile an

Ich habe eine sehr große Protokolldatei (6 Gig).

Ich möchte nach 'Nov 12 2012' suchen und jede Zeile ausdrucken. 

Ich bin ein Linux-Neuling und habe keine Ahnung, wie das gemacht wird. Meistens wird eine weitere Option erforderlich sein, um die X-Zeilenanzahl anzuzeigen und durch die Suche vorwärts zu gehen.

29
grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log

Dies zeigt jede Zeile mit Ihrem Datumstext sowie 10 Textzeilen VOR der übereinstimmenden Zeile und 5 Zeilen NACH der übereinstimmenden Zeile.

69
Marc B

Sie können grep verwenden, um übereinstimmende Zeilen und less als Pager anzuzeigen:

grep 'Nov 12 2012' /path/to/logfile | less

Geben Sie am Ende jeder Seite "Leertaste" ein, um zum nächsten Ergebnisbildschirm zu gelangen.

13
larsks

Sie können grep wie folgt verwenden:

grep 'Nov 12 2012' file_to_search.log > search_results.log

Einige Erklärungen:

  • grep ist der Name des Befehls/Tools, mit dem nach Mustern gesucht wird
  • 'Nov 12 2012': Direkt nach grep und durch mindestens 1 Leerzeichen getrennt, geben Sie das Muster an, nach dem Sie suchen möchten
  • file_to_search.log: Als letztes Argument für grep geben Sie hier die Datei (en) an, nach denen Sie suchen möchten
  • > search_results.log: Der > bedeutet Ausgabe Umleitung . Hier bedeutet dies "Schreiben Sie die Ausgabe von diesem Befehl in eine Datei mit dem Namen search_results.log. Wenn die Datei bereits vorhanden ist, überschreiben Sie sie vollständig. 

Nach dem Abrufen der Ausgabe können Sie die Ergebnisse mit einem Texteditor Ihrer Wahl oder mit less anzeigen. Verwenden Sie daher eine der folgenden Möglichkeiten:

less search_results.log
gedit search_results.log
emacs search_results.log
vim search_results.log
6
sampson-chen

Öffnen Sie die Datei in einem Skriptformat und suchen Sie dann mit dem Schlüsselwort, das Sie suchen möchten, wie folgt.

$vi <logfilename>
     &
:/search
3
Raju K

Dies ist ein guter Weg, um Fehler in großen Protokolldateien zu finden: grep --after-context = 5 - before-context = 10 'Error' yourfile.log oder grep --after-context = 5 - before-context = 10 "Ausnahme" yourfile.log

1
Arnon Rodman

grep -A 5 -B 10 '12. November 2012' yourfile.log
- A n für n Zeile NACH und -B n für n Zeilen Vorher . Oder für beide zusammen - C n d.

0
Mandrake