複数の大容量ファイルを確認してください。

複数の大容量ファイルを確認してください。

大容量ファイル(それぞれ数GB)を含むフォルダがあります。これらのファイルを検索したいですPATTERN。または、以下を使用してgrepこれを実行できますack

$ grep -n 'PATTERN' /path/to/files/*.log

今を含むすべての行を含むリストがありますPATTERN。ただし、コンテキストを表示するには、これらの行を含むいくつかの領域(発生前の数行PATTERNと発生後の数行)が必要です。私はこれらの行ブロックを各行の座標(ファイルと行番号)と共にリストすることを好みます。どうすればいいですか?

答え1

Gnu grepを使う

grep -B <number_lines> -A <number_lines> -n 'PATTERN' /path/to/files/*.log

たとえば、上の6行に一致するgrep行の後ろの4行を取得するには

grep -B 6 -A 4 -n 'PATTERN' /path/to/files/*.log

~からman grep

コンテキストライン制御
-A NUM、--after-context = NUM
​​行を一致させた後、NUM行末尾のコンテキストを印刷します。
-B NUM, --before-context=NUM
行を一致させる前に先行コンテキストの NUM 行を印刷します。

関連情報