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

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

Re: [shell-script] Localizar, trocar extensão e copiar arquivo


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Localizar, trocar extensão e copiar arquivo
Date: Sat, 11 Feb 2006 16:13:06 -0200

Tem formas melhores mas... eu faria assim:

find . -name "*.dpk" -type f > lista

while read file; do
echo -n "alterando arquivo '$file' "
mv "${file}" "${file%dpk}res" && echo "Done" || echo "Erro"
done < lista

Logo alguem mostra um onw-liner que resolve...

abraços.
Em 11/02/06, Joao Morais <address@hidden> escreveu:
>
>  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
>
>
>   ---------------------------------------------------------------------
>  Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
>  ---------------------------------------------------------------------
>  Sair da lista: address@hidden
>  ---------------------------------------------------------------------
>  Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  Servidor Newsgroup da lista: news.gmane.org
>  Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
>
>
>
>          Yahoo! Grupos, um serviço oferecido por:
>
> PUBLICIDADE
>
>    ________________________________
 Links do Yahoo! Grupos
>
>
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do 
> Yahoo!.



--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

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