274

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

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

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

3 に答える 3

441

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

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

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

-h, --ファイル名なし

出力時にファイル名のプレフィックスを抑制します。これは、検索するファイルが 1 つだけ (または標準入力のみ) の場合のデフォルトです。

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

-H, --with-ファイル名

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

于 2013-10-16T14:58:40.513 に答える
8

-Hに置き換えるだけ-hです。man grepオプションの詳細を確認する

find . -name '*.bar' -exec grep -hn FOO {} \;
于 2013-10-16T14:59:13.297 に答える
6

マニュアルページから:

-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.
于 2013-10-16T14:58:27.950 に答える