GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver tous les fichiers qui ne contiennent pas de chaîne de texte ?

Quelle concision puis-je utiliser pour rechercher tous les fichiers qui ne contiennent PAS de chaîne de texte ?

J'ai essayé ceci (en utilisant -v pour inverser les paramètres de grep) sans succès :

find . -exec grep -v -l shared.php {} ;

Quelqu'un a dit que cela fonctionnerait :

find . ! -exec grep -l shared.php {} ;

Mais cela ne semble pas fonctionner pour moi.

Cette page contient cet exemple :

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

Mais c'est lourd et pas du tout concis.

ps :je sais que grep -L * va le faire, mais comment puis-je utiliser la commande find en combinaison avec grep pour les fichiers exclus, c'est ce que je veux vraiment savoir.

pss :De plus, je ne sais pas comment faire en sorte que grep inclue des sous-répertoires avec le grep -L * syntaxe, mais je veux toujours savoir comment l'utiliser avec find 🙂

Réponse acceptée :

find . -type f | xargs grep -H -c 'shared.php' | grep 0$ | cut -d':' -f1    

OU

find . -type f -exec grep -H -c 'shared.php' {} ; | grep 0$ | cut -d':' -f1

Ici, nous calculons le nombre de lignes correspondantes (en utilisant -c ) dans un fichier si le nombre est 0, alors c'est le fichier requis, nous avons donc coupé la première colonne, c'est-à-dire le nom de fichier de la sortie.


Linux
  1. Comment trouver tous les fichiers épars sous Linux

  2. Trouver tous les fichiers dont le nom contient une chaîne

  3. Comment puis-je trouver tous les fichiers liés en dur sur un système de fichiers ?

  4. Comment puis-je trouver tous les fichiers qui ne sont *pas* en écriture de groupe ?

  5. Comment puis-je récursivement bzip2 tous les fichiers qui ne sont pas bzip?

Comment trouver une chaîne ou un mot spécifique dans les fichiers et les répertoires

Commande Grep sous Linux (Rechercher du texte dans des fichiers)

Comment utiliser la commande Grep pour rechercher du texte dans des fichiers

Comment trouver une chaîne dans un fichier sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Rechercher du texte dans des fichiers sous Linux à l'aide de grep