非常に大きなログ ファイル (6 GB) があります。
「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