Какую краткую команду я могу использовать, чтобы найти все файлы, которые НЕ содержат текстовую строку?
Я попытался это (используя -v для инвертирования параметров grep) без удачи:
find . -exec grep -v -l shared.php {} \;
Кто-то сказал, что это будет работать:
find . ! -exec grep -l shared.php {} \;
Но это не похоже на работу для меня.
На этой странице есть этот пример:
find ./logs -size +1c > t._tmp
while read filename
do
grep -q "Process Complete" $filename
if [ $? -ne 0 ] ; then
echo $filename
fi
done < t._tmp
rm -f t_tmp
Но это громоздко и совсем не кратко.
PS: я знаю, что это grep -L *
будет делать, но как я могу использовать команду find в сочетании с grep для исключенных файлов, это то, что я действительно хочу знать.
pss: Также я не уверен, как заставить grep включать подкаталоги с grep -L *
синтаксисом, но я все еще хочу знать, как использовать его с find
:)