回答:
次のように文書化されている-l
or --files-with-matches
オプションを使用します。
通常の出力を抑制します。代わりに、通常出力が出力される各入力ファイルの名前を出力します。スキャンは最初の一致で停止します。(
-l
POSIXで指定されています。)
したがって、あなたの例では、次のものを使用できます。
$ grep check * -lR
grep -rl "text to find" "/usr/share"
、それはうまくいきました!
find . -type f -exec grep -l check {} +
おそらく-R
、GNUの最新バージョンでは、grep
ディレクトリを下降するときにシンボリックリンクをたどるオプションを使用したくないでしょう。-r
代わりに、バージョン2.12(2012年4月)以降のシンボリックリンクに従わないオプションを使用します。
grepがGNUのものではない場合、またはバージョン2.12より古い場合、またはコードを非出血エッジGNUシステムに移植可能にする必要がある場合は、find
上記のコマンドを使用します。
それ以外の場合は、次のことができます。
grep -rl check .
使用しないでください*
(現在のディレクトリ(および現在のディレクトリのみ)の隠しファイルを省略し、名前がで始まるファイルで問題が発生するため-
)、引数によってオプションを渡すことは避けてください。環境とポータブルではありません。
grep -rin "whatToFind" locationToFInd
例:$ grep -rin "vihaan"。
ファイル名と、「vihaan」が含まれる対応する行「。」を再帰的に検索およびリストします。現在のディレクトリを参照します。
find . -type f | grep "keyword" *
現在のディレクトリで検索します。ルートから検索する/
には、代わりに指定します.
grep -lR "text-to-find" <where-to-find>
また、正常に動作します。
例えば、 grep -lR "NAVIGATE" .
私たちは言葉を見つけるNAVIGATE
には.
、現在のディレクトリに。