path / file:lineを表示しないgrep


234

どのようにgrepして一致する行のみを返すのですか?つまり、パス/ファイル名は結果から省略されます。

この場合、現在のディレクトリにあるすべての.barファイルを調べて、FOOという用語を検索します

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

回答:


375

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

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

-hfromのように、ファイル名を非表示にするパラメータはどこにありますかman grep

-h、-no-filename

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

あなたが使用していたことに注意してください

-H、-with-filename

一致ごとにファイル名を出力します。これは、検索するファイルが複数ある場合のデフォルトです。


行番号は省略できますか?
javadba

@javadbaおそらくエイリアスを使用していますalias grep。エイリアスを省略するには、\grep ...
fedorqui 'SO stop harming'

1
はい、エイリアスを使用していました。
javadba

8

で置き換え-Hてください-hman grepオプションの詳細を確認する

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

6

manページから:

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