どのようにgrepして、一致する行のみを返しますか? つまり、パス/ファイル名は結果から省略されます。
この場合、現在のディレクトリ内のすべての .bar ファイルを調べて、FOO という用語を検索します。
find . -name '*.bar' -exec grep -Hn FOO {} \;
する必要はありませんfind
。特定のディレクトリ内でパターンを探しているだけの場合は、これで十分です。
grep -hn FOO /your/path/*.bar
-h
from のように、ファイル名を非表示にするパラメーターはどこにありますかman grep
:
-h, --ファイル名なし
出力時にファイル名のプレフィックスを抑制します。これは、検索するファイルが 1 つだけ (または標準入力のみ) の場合のデフォルトです。
使用していたことに注意してください
-H, --with-ファイル名
各一致のファイル名を出力します。これは、検索するファイルが複数ある場合のデフォルトです。
-H
に置き換えるだけ-h
です。man grep
オプションの詳細を確認する
find . -name '*.bar' -exec grep -hn FOO {} \;
マニュアルページから:
-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.