procure por arquivos com texto específico e copie esses arquivos para outro diretório

procure por arquivos com texto específico e copie esses arquivos para outro diretório

Como procuro arquivos em um diretório que contém um texto específico e os copio para outro diretório? Estou usando o shell .ksh.

Responder1

Faça man xargse olhe para a -Ibandeira.

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

Para economizar digitação coloque este comando no shell script:

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

Para executar digite locate searchstringonde searchstringestá o texto que você está procurando.

Responder2

Você pode simplesmente fazer isso no diretório base que deseja pesquisar

cp $(grep -r -l "the pattern" *) target_directory
  • grep -rsignifica recusivo
  • -lsignifica listar o caminho do arquivo e não a correspondência nele.

  • colocar $()o comando irá executá-lo e colocar o resultado no comando externo.

  • cp pegará uma lista de arquivos e, desde que o último caminho seja um diretório, copie todos eles lá.

informação relacionada