Pipe find en grep -v

Pregunta:

Estoy tratando de encontrar todos los archivos que son de cierto tipo y no contienen una determinada cadena. Estoy tratando de hacerlo conectando find a grep -v

ejemplo:

find -type f -name '*.java' | xargs grep -v "something something"

Parece que esto no funciona. Parece que solo está devolviendo todos los archivos que encontró el comando de búsqueda. Lo que estoy tratando de hacer es básicamente encontrar todos los archivos .java que coinciden con un determinado nombre de archivo (por ejemplo, termina con 'Pb' como en SessionPb.java) y que no tienen un 'extiende SomethingSomething "dentro.

Mi sospecha es que lo estoy haciendo mal. Entonces, ¿cómo debería verse el comando en su lugar?

Respuesta:

No hay necesidad de xargs aquí. También debe usar grep con la opción -L (archivos sin coincidencia), porque de lo contrario, generará el contenido del archivo en lugar de su nombre, como en su ejemplo.

find . -type f -iname "*.java" -exec grep -L "something somethin" {} \+

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım