GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encontrar todos los archivos que no contienen una cadena de texto?

Qué conciso Qué comando puedo usar para encontrar todos los archivos que NO contienen una cadena de texto?

Intenté esto (usando -v para invertir los parámetros de grep) sin suerte:

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

Alguien dijo que esto funcionaría:

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

Pero parece que no funciona para mí.

Esta página tiene este ejemplo:

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

Pero eso es engorroso y nada conciso.

pd:sé que grep -L * hará esto, pero lo que realmente quiero saber es cómo puedo usar el comando de búsqueda en combinación con grep para excluir archivos.

pss:Además, no estoy seguro de cómo hacer que grep incluya subdirectorios con grep -L * sintaxis, pero todavía quiero saber cómo usarlo con find 🙂

Respuesta aceptada:

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

O

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

Aquí estamos calculando el número de líneas coincidentes (usando -c ) en un archivo si el recuento es 0, entonces es el archivo requerido, por lo que cortamos la primera columna, es decir, el nombre del archivo de la salida.


Linux
  1. ¿Cómo encontrar múltiples cadenas en archivos?

  2. Comando de Linux:¿Cómo 'buscar' solo archivos de texto?

  3. ¿Cómo encontrar archivos de texto que no contengan texto en Linux?

  4. Cómo gzip todos los archivos en todos los subdirectorios en bash

  5. ¿Cómo encuentro todos los archivos que contienen texto específico en Linux?

Cómo encontrar una cadena o palabra específica en archivos y directorios

Comando Grep en Linux (Buscar texto en archivos)

Cómo usar el comando Grep para buscar texto en archivos

Cómo encontrar una cadena en un archivo en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Encuentra texto en archivos en Linux usando grep