Cuando utilizo el comando Grep para encontrar una cadena de búsqueda en un conjunto de archivos, ¿cómo vuelco los resultados en un archivo de texto?
¿También hay un interruptor para el comando Grep que proporciona resultados más limpios para una mejor legibilidad, como un avance de línea entre cada entrada o una forma de justificar los nombres de archivo y los resultados de búsqueda?
Por ejemplo, un camino para cambiar ...
./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result
a
./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result
Respuestas:
El
-n
imprimirá el número de línea y>
redirigirá grep-results al archivo de salida.Si desea "limpiar" los resultados, puede filtrarlos usando tubería,
|
por ejemplo:grep -n "test" * | grep -v "mytest" > output-file
coincidirá con todas las líneas que tienen la cadena "prueba" excepto las líneas que coinciden con la cadena "mytest" (ese es el interruptor-v
), y redirigirá el resultado a un archivo de salida.En esta publicación se pueden encontrar algunos buenos consejos sobre grep
fuente
>>
El shell realiza la redirección de la salida del programa.
grep
no tiene ningún mecanismo para agregar líneas en blanco entre cada coincidencia, pero proporciona opciones como el contexto alrededor de la línea coincidente y la coloración de la coincidencia en sí. Consulte lagrep(1)
página de manual para obtener detalles, específicamente las opciones-C
y--color
.fuente