1. ホーム
  2. linux

[解決済み】パス/ファイル:行を表示しないgrep

2022-04-02 19:46:55

質問

どのように grep して、マッチした行だけを返すのですか? つまり、パス/ファイル名は結果から省かれます。

この場合、カレント・ディレクトリにあるすべての .bar ファイルを検索し、FOO という用語を探したいと思います。

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

解決方法は?

は不要です。 find . 特定のディレクトリ内のパターンを探すだけなら、これで十分でしょう。

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

ここで -h は、ファイル名を隠すためのパラメータです。 man grep :

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

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

を使っていたことに注意してください。

-H, --with-filename

マッチするファイル名を表示します。 これは、マッチしたファイルがある場合のデフォルト 複数のファイルを検索します。