web-dev-qa-db-ja.com

LinuxはWordを検索し、行全体を表示します

非常に大きなログファイル(6ギガ)があります。

「2012年11月12日」を検索し、各行を印刷します。

私はLinuxの初心者で、これがどのように行われるかわかりません。ほとんどの場合、X行の行を表示し、検索を進めるためのオプションが必要になります。

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

日付テキストを含む各行と、一致した行の前の10行のテキストと、一致した行の5行後のテキストが表示されます。

75
Marc B

grepを使用して一致する行を表示し、lessをページャーとして表示できます。

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

結果の次の画面に進むには、各ページの最後に「スペース」と入力します。

13
larsks

次のようにgrepを使用できます。

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

いくつかの説明:

  • grepは、パターンの検索に使用されるコマンド/ツールの名前です
  • 'Nov 12 2012'grepの直後に、少なくとも1つのスペースで区切って、検索するパターンを指定します
  • file_to_search.loggrepの最後の引数として、ここで検索するファイルを指定します
  • > search_results.log>は、出力 リダイレクト を意味します。ここでは、「このコマンドからの出力をsearch_results.logというファイルに書き込みます。ファイルが既に存在する場合は、完全に上書きします。

出力を取得した後、選択したテキストエディターまたはlessで結果を表示できます。したがって、次のいずれかを使用します。

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

スクリプト形式でファイルを開き、次のように検索するキーワードで検索します。

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

これは、大きなログファイルでエラーを見つけるのに適した方法です。grep --after-context = 5 --before-context = 10 'Error' yourfile.logまたはgrep --after-context = 5 --before-context = 10 「例外」yourfile.log

1
Arnon Rodman

grep -A 5 -B 10 '2012年11月12日' yourfile.log
-A nはn行AFTERで、-B nはn行前です。または両方を一緒に-C n i.e n line検索されたテキストの前後。

0
Mandrake