2011-08-26 7 views
31

¿Cómo puedo encontrar los archivos no que contengan texto en Linux? Básicamente estoy buscando la inversa de la siguiente¿Cómo encontrar archivos de texto que no contengan texto en Linux?

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

Pertenece en superusuario o unix.stackexchange.com –

+0

Esto no funciona correctamente si uno de los nombres de archivo o directorio contiene un espacio en blanco. Use 'find. -type f -exec grep -iL "somestring" + '(o' grep -r'). – hagello

+0

Posible duplicado de [Usar grep para buscar archivos que no contienen un patrón de cadena dado] (https://stackoverflow.com/questions/1748129/using-grep-to-find-files-that-dont-contain-a -given-string-pattern) –

Respuesta

50

El comando que cito, irónicamente, hace exactamente lo que describes. ¡Pruébalo!

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

Dice a solo.


Creo que puede ser confuso y -L -L

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

es la inversa de

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

Por cierto, considere

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

O víspera n

grep -IRiL "somestring" . 
+2

aceptando su respuesta, es recursiva e inversa de find I want: grep -IRiL "somestring". – eon

Cuestiones relacionadas