procura por arquivos com texto específico e copia esses arquivos para outro diretório

1

Relativamente novo ao UNIX e ainda aprendendo - Como eu procuro arquivos em um diretório que contém um texto específico e copio-os para outro diretório? Estou usando o shell .ksh.

    
por Plebeian 23.05.2016 / 16:38

2 respostas

0

Você pode simplesmente fazer a partir do diretório base que deseja pesquisar

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

  • colocar $() em volta do comando executará e colocará o resultado no lugar no comando externo.

  • O cp terá uma lista de arquivos e, desde que o último caminho seja um diretório, copie-os lá.

por 23.05.2016 / 18:44
3

Faça man xargs e observe o sinal -I .

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

Para salvar, digite 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 o tipo locate searchstring , em que searchstring é o texto que você está pesquisando.

    
por 23.05.2016 / 17:19

Tags