buscar archivos con texto específico y copiar estos archivos a otro directorio

buscar archivos con texto específico y copiar estos archivos a otro directorio

¿Cómo busco archivos en un directorio que contienen un texto específico y los copio a otro directorio? Estoy usando el shell .ksh.

Respuesta1

Hazlo man xargsy mira la -Ibandera.

find /path/to/directory -type f -exec grep -il "your pattern" {} \; | xargs -I % cp % /dest/dir/

Para ahorrar escritura, coloque este comando en el script de shell:

#!/usr/bin/ksh 
# Script name: locate
find /path/to/directory -type f -exec grep -il "$1" {} \; | xargs -I % cp % /dest/dir/

Para ejecutar escriba locate searchstringdónde searchstringestá el texto que está buscando.

Respuesta2

Simplemente puede hacerlo desde el directorio base que desea buscar.

cp $(grep -r -l "the pattern" *) target_directory
  • grep -rsignifica recursivo
  • -lsignifica enumerar la ruta del archivo, no la coincidencia que contiene.

  • colocar $()el comando lo ejecutará y colocará el resultado en su lugar en el comando externo.

  • cp tomará una lista de archivos y, siempre que la última ruta sea un directorio, los copiará todos allí.

información relacionada