[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
- Localizar, trocar extensão e copiar arquivo,
Joao Morais <=