非常に大きなログファイル(6ギガ)があります。
「2012年11月12日」を検索し、各行を印刷します。
私はLinuxの初心者で、これがどのように行われるかわかりません。ほとんどの場合、X行の行を表示し、検索を進めるためのオプションが必要になります。
grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log
日付テキストを含む各行と、一致した行の前の10行のテキストと、一致した行の5行後のテキストが表示されます。
grep
を使用して一致する行を表示し、less
をページャーとして表示できます。
grep 'Nov 12 2012' /path/to/logfile | less
結果の次の画面に進むには、各ページの最後に「スペース」と入力します。
次のようにgrep
を使用できます。
grep 'Nov 12 2012' file_to_search.log > search_results.log
いくつかの説明:
grep
は、パターンの検索に使用されるコマンド/ツールの名前です'Nov 12 2012'
:grep
の直後に、少なくとも1つのスペースで区切って、検索するパターンを指定しますfile_to_search.log
:grep
の最後の引数として、ここで検索するファイルを指定します> search_results.log
:>
は、出力 リダイレクト を意味します。ここでは、「このコマンドからの出力をsearch_results.log
というファイルに書き込みます。ファイルが既に存在する場合は、完全に上書きします。出力を取得した後、選択したテキストエディターまたはless
で結果を表示できます。したがって、次のいずれかを使用します。
less search_results.log
gedit search_results.log
emacs search_results.log
vim search_results.log
スクリプト形式でファイルを開き、次のように検索するキーワードで検索します。
$vi <logfilename>
&
:/search
これは、大きなログファイルでエラーを見つけるのに適した方法です。grep --after-context = 5 --before-context = 10 'Error' yourfile.logまたはgrep --after-context = 5 --before-context = 10 「例外」yourfile.log
grep -A 5 -B 10 '2012年11月12日' yourfile.log
-A nはn行AFTERで、-B nはn行前です。または両方を一緒に-C n i.e n line検索されたテキストの前後。