¿Cómo copiar el contenido de los archivos desde una búsqueda de línea de comando en un solo archivo?

¿Cómo copiar el contenido de los archivos desde una búsqueda de línea de comando en un solo archivo?

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 grepy xargs:

grep -rlZ search-text some/dir/ | xargs -r0 cat > dump.test

-les enumerar los archivos que contienen al menos una línea que coincida con el archivo search-text. -Zes imprimir esa línea delimitada por NUL para que pueda pasarse de forma segura a xargs -0.

-rpara 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 grepcomando por archivo que no esté vacío.

información relacionada