web-dev-qa-db-fra.com

Comment trouver des fichiers texte ne contenant pas de texte sous Linux?

Comment trouver des fichiers not contenant du texte sous Linux? Fondamentalement, je cherche l'inverse de ce qui suit

find . -print | xargs grep -iL "somestring"
32
eon

Ironiquement, la commande que vous citez fait exactement ce que vous décrivez ... Testez-la!

echo "hello" > a
echo "bye" > b
grep -iL BYE a b

Dit seulement.


Je pense que vous pouvez confondre -L et -l

find . -print | xargs grep -iL "somestring"

est l'inverse de

find . -print | xargs grep -il "somestring"

À propos, considérez

find . -print0 | xargs -0 grep -iL "somestring"

Ou même

grep -IRiL "somestring" .
55
sehe

Si vous utilisez "find", le script fait "grep" également dans le dossier:

[root@vps test]# find  | xargs grep -Li 1234
grep: .: Is a directory
.
./test.txt
./test2.txt
[root@vps test]#

Utilisez le "grep" directement:

# grep -Li 1234 /root/test/*
/root/test/test2.txt
/root/test/test.txt
[root@vps test]#

ou spécifiez dans "trouver" les options "-type f" ... même si vous utilisez la recherche, vous mettrez plus de temps (d'abord la liste des fichiers, puis créez le grep).

0
danilo