36

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

「2012 年 11 月 12 日」を検索して、各行を印刷したいと考えています。

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

4

6 に答える 6

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

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

于 2012-11-13T19:33:31.157 に答える
15

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

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

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

于 2012-11-13T19:33:18.343 に答える
7

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
于 2012-11-13T19:57:36.750 に答える
4

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

$vi <logfilename>
     &
:/search
于 2016-04-21T01:57:42.060 に答える