Copie el contenido de todos los resultados de la búsqueda en un solo archivo. No quiero copiar el resultado de la búsqueda sino el contenido del archivo del resultado de la búsqueda.
Por ejemplo, el resultado de mi búsqueda arrojó una lista de 10 archivos y luego me gustaría copiar el contenido de esos 10 archivos en un solo archivo (por ejemplo dump.test
).
Respuesta1
Con GNU grep
y xargs
:
grep -rlZ search-text some/dir/ | xargs -r0 cat > dump.test
-l
es enumerar los archivos que contienen al menos una línea que coincida con el archivo search-text
. -Z
es imprimir esa línea delimitada por NUL para que pueda pasarse de forma segura a xargs -0
.
-r
para buscar en todos los archivos internos some/dir/
de forma recursiva.
POSIXly:
find some/dir -type f -size +0 -exec grep -q search-text {} \;
-exec cat {} + > dump.test
Eso será menos eficiente ya que significa ejecutar un grep
comando por archivo que no esté vacío.