grepの結果をテキストファイルに出力します。よりクリーンな出力が必要です


84

Grepコマンドを使用して一連のファイルから検索文字列を検索する場合、結果をテキストファイルにダンプするにはどうすればよいですか?

また、各エントリ間の改行やファイル名と検索結果を正当化する方法など、読みやすくするためのよりクリーンな結果を提供するGrepコマンドのスイッチはありますか?

たとえば、変更するために離れて...

./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result

./file/path: first result

./another/file/path: second result

./a/third/file/path/here: third result

14
これらの実際の非常に役立つ「本当の質問ではない」質問が、数年後にGoogleのトップ検索結果に表示されるようになったのが大好きです。
エイドリアンカー

回答:


112
grep -n "YOUR SEARCH STRING" * > output-file

-n行番号を出力し、>出力ファイルにはgrep-結果をリダイレクトします。
結果を「クリーン」にしたい場合は|、たとえばパイプを使用して結果をフィルタリングできます。
grep -n "test" * | grep -v "mytest" > output-file 文字列「mytest」に一致する行(スイッチ-v)を除く、文字列「test」を持つすべての行に一致し、リダイレクトします。結果を出力ファイルに変換します。
いくつかの良いgrepのヒントはこの投稿で見つけることができます


10
grepは終了時にのみ書き込みますか、それともコンテンツの処理中に1行ずつ書き込みますか?ありがとう!
crista23 2014

5
@ alfasin-単一の「>」は出力ファイルの結果を上書きしませんか?結果をファイルに追加するために、二重の「>>」を使用するべきではありませんか?
GTodorov 2014年

3
@GTodorovはい、使用を追加したい場合>>
Nir Alfasi 2014年

12
将来の訪問者にとって、@ Crista23の質問に対する答えは、grepが終了したときに書き込むことです
HBeel 2016

35

プログラム出力のリダイレクトはシェルによって実行されます。

grep ... > output.txt

grep各一致の間に空白行を追加するメカニズムはありませんが、一致した行の周囲のコンテキストや一致自体の色付けなどのオプションを提供します。参照してください。grep(1)具体的には、詳細については、manページを-Cして--colorオプション。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.