Anda dapat melakukannya dengan grep saja (tanpa menemukan).
grep -riL "somestring" .
Berikut penjelasan parameter yang digunakan pada grep
-L, --files-without-match
each file processed.
-R, -r, --recursive
Recursively search subdirectories listed.
-i, --ignore-case
Perform case insensitive matching.
Jika Anda menggunakan l
huruf kecil Anda akan mendapatkan sebaliknya (file dengan kecocokan)
-l, --files-with-matches
Only the names of files containing selected lines are written
Perintah yang Anda kutip, ironisnya melakukan persis seperti yang Anda gambarkan. Ujilah!
echo "hello" > a
echo "bye" > b
grep -iL BYE a b
Mengatakan satu-satunya.
Saya pikir Anda mungkin membingungkan -L dan -l
find . -print | xargs grep -iL "somestring"
adalah kebalikan dari
find . -print | xargs grep -il "somestring"
Omong-omong, pertimbangkan
find . -print0 | xargs -0 grep -iL "somestring"
Atau bahkan
grep -IRiL "somestring" .