shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Localizar, trocar extensão e copiar arquivo


From: Joao Morais
Subject: Localizar, trocar extensão e copiar arquivo
Date: Sat, 11 Feb 2006 15:50:27 -0200
User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)


Pessoal,

Preciso localizar alguns arquivos, trocar a extensão e utilizar como parâmetro do cp. Segue o que eu tenho aqui:

for ResFile in $(find . -name "*.dpk" -type f | sed 's/\.dpk$/\.res/g')
do
  cp -f "${SourceFile}" "${ResFile}"
done

Funciona que é um espetáculo, mas o "for" recebe os arquivos separados por espaço em branco, então se eu tenho um diretório ou um arquivo com brancos no nome (mania de usuário Windows), o script não funciona.

Outra:

$ find . -name "*.dpk" -type f | sed 's/\.dpk$/\.res/g' | e...

aqui eu não tenho como passar a saída do sed para o cp (ou tenho?).

Bom mesmo é usar o parâmetro exec do find. Vamos tentar:

$ find . -name "*.dpk" -type f \
 -exec cp -f "${SourceFile}" "$(echo {} | sed 's/\.dpk$/\.res/g')" \;

mas aqui o {} do exec está dentro de outro processo e não vira nome de arquivo.

Alguma outra dica? Pode ser elegante ou não.

Obrigado,
--
João Morais


reply via email to

[Prev in Thread] Current Thread [Next in Thread]