
次のタスクには GREP 構文が必要です (LINUX OS を使用しています)。
現在のディレクトリ内で STRING を含むすべてのファイルを照会しますが、一致する FILENAMES のみをリストします。
ありがとう!
答え1
使用できます
grep -rl stringToSearch .
または
find . -type f -exec grep -l stringToSearch {} \;
grep
その他のUNIXコマンドの詳細については、マニュアル( man
)を参照してください。
その場合man grep
は
-l, --files-with-matches 通常の出力を抑制し、代わりに、通常出力が印刷される各入力ファイルの名前を印刷します。
スキャンは最初の一致で停止します。
当然のことながら、bashコマンドとして、文字列に特殊文字やスペースが含まれている場合は、それらをエスケープするか、文字列をクォータで囲む必要があります。
答え2
「Grep -l」を実行するとファイル名のリストが表示されます。
> echo "hello" > test_file1.list
> echo "hello2.." > test_file2.list
> echo "xyz" > test_file3.list
> grep "hello" test_file*list
test_file1.list:hello
test_file2.list:hello2..
> grep -l "hello" test_file*list
test_file1.list
test_file2.list