2013-10-16 5 views
133

どのようにgrepして一致する行だけを返しますか?すなわち、パス/ファイル名は結果から省略される。この場合パス/ファイルを表示しないgrep:

私はmanページで見にくい、それがあることを長期FOO本当に

find . -name '*.bar' -exec grep -Hn FOO {} \; 

答えて

214

findには不要です。あなただけの特定のディレクトリ内のパターンを探しているなら、これで十分です:

grep -hn FOO /your/path/*.bar 

-hは、ファイル名を隠すためのパラメータである、man grepからのように:

-h、 - no-filename

出力時にファイル名の接頭辞を省略します。検索するファイルが1つだけ(または標準入力のみ)の場合、これはデフォルトの です。あなたは私たちが

-H、--with-filenameに

印刷各試合のファイル名を使用して

注意。これは、検索する複数のファイルが の場合のデフォルトです。

5

ない探し、現在のディレクトリ内のすべてのファイル.BARで見てみたいですか?

-h, --no-filename 
    Suppress the prefixing of file names on output. This is the default when there 
    is only one file (or only standard input) to search. 
+23

の詳細についてはman grepを確認答えてくれてありがとう、しかしStackOverflowのを確認することも簡単:) – chessofnerd

+3

のだろうか。 – Gordon

+13

@ TC1マニュアルページは通常、タスクではなくスイッチによって整理されます。可能なすべてのスイッチを通して読むことは面倒です。 – mikemaccana

6

-H-hに置き換えてください。 Googleは他に彼らの特殊なケースのすべてのもののような特殊なケースのマンページをしない理由オプション

find . -name '*.bar' -exec grep -hn FOO {} \; 
関連する問題