¿Cómo puedo hacer grep de los resultados de FIND usando -EXEC y aún así enviarlos a un archivo?

Pregunta:

Mejor explicar con ejemplos.

Yo puedo:

find . -name "*.py" -type f > output.txt

Pero, ¿cómo puedo almacenar la salida en el mismo archivo para:

find . -name "*.py" -type f -exec grep "something" {} \

No puedo simplemente hacer

find . -name "*.py" -type f -exec grep "something" {} \ > output.txt

Respuesta:

Si te entiendo correctamente, esto es lo que quieres hacer:

find . -name '*.py' -print0 | xargs -0 grep 'something' > output.txt

Busque todos los archivos con extensión .py , grep solo las filas que contengan something y guarde las filas en output.txt . Si el archivo output.txt existe, se truncará; de lo contrario, se creará.

Usando -exec :

find . -name '*.py' -exec grep 'something' {} \; > output.txt

Estoy incorporando comentario Chris Downs aquí: El comando anterior dará lugar a grep está ejecutando tantas veces como find hallazgos nombres de ruta que pasa las pruebas dadas (sólo el único -name de la prueba anterior). Sin embargo, si reemplaza el \; con un + , se llama a grep con varios nombres de ruta desde find (hasta un cierto límite).

Consulte la pregunta Uso de punto y coma (;) frente a más (+) con exec en buscar para obtener más información sobre el tema.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım