E só pra não dizer que sua ideia tava errada... Só faltou vc tratar o IFS ..
Veja, usando exatamente sua ideia: [EMAIL PROTECTED]:~/test]# ls Banco de Dados A.txt Banco de Dados B.txt Banco de Dados C.txt Banco de Dados D.txt Banco de Dados E.txt [EMAIL PROTECTED]:~/test]# OLDIFS=$IFS [EMAIL PROTECTED]:~/test]# IFS=' > ' [EMAIL PROTECTED]:~/test]# for file in *; do mv "$file" $(sed 's/Banco de Dados //g' <<< $file); done [EMAIL PROTECTED]:~/test]# IFS=$OLDIFS [EMAIL PROTECTED]:~/test]# ls A.txt B.txt C.txt D.txt E.txt [EMAIL PROTECTED]:~/test]# (agora limpar os e-mails do corpo) -- Flávio do Carmo Júnior On Dec 18, 2007 4:34 PM, Flavio Junior <[EMAIL PROTECTED]> wrote: > Uma das formas.. bonita eu considero: > > # Listando os arquivos, que eu acho que eh o seu padrao > [EMAIL PROTECTED]:~/test]# ls > Banco de Dados A.txt Banco de Dados b.txt Banco de Dados c.txt > Banco de Dados d.txt Banco de Dados e.txt > > # Executando o script com o "echo" so pra eu ver se nao fiz cagada > [EMAIL PROTECTED]:~/test]# while IFS=$'\n' read -r FILE; do echo mv > "$FILE" "${FILE/Banco\ de\ Dados\ /}"; done < <(ls) > mv Banco de Dados A.txt A.txt > mv Banco de Dados b.txt b.txt > mv Banco de Dados c.txt c.txt > mv Banco de Dados d.txt d.txt > mv Banco de Dados e.txt e.txt > > # Parece que não, vamos executar > [EMAIL PROTECTED]:~/test]# while IFS=$'\n' read -r FILE; do mv "$FILE" > "${FILE/Banco\ de\ Dados\ /}"; done < <(ls) > > # Conferindo > [EMAIL PROTECTED]:~/test]# ls > A.txt b.txt c.txt d.txt e.txt > [EMAIL PROTECTED]:~/test]# > > > Espero ter ajudado.. > > > -- > > Flávio do Carmo Júnior > > > On Dec 18, 2007 4:29 PM, Paulo Soares Drumond <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > Alan, > > > > Lá vai: > > > > for file in * > > do > > mv "$file" $(sed 's/Banco de Dados //g' <<< $file) > > done > > > > Paulo > > > > Em 18/12/07, Alan Diones <[EMAIL PROTECTED]> escreveu: > > > > > > me informa como vc tá fazendo > > > > > > > > > ----- Original Message ----- > > > From: Paulo Soares Drumond > > > To: shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br> > > > Sent: Tuesday, December 18, 2007 3:44 PM > > > Subject: Re: [shell-script] Re: Qual é o modo certo > > > > > > Julio, > > > > > > Estou tentando renomear arquivos aqui e a cadeia de caracteres que eu > > > quero > > > suprimir tem espaços em branco. Eu tinha feito um comando igual ao > > debaixo > > > e > > > não obtive sucesso. > > > > > > Vi que o exemplo do Edgard usa underscore em lugar de espaço. Há algum > > > truque para o meu caso? > > > > > > Obrigado, > > > > > > Paulo > > > > > > Em 07/12/07, Julio C. Neves > > <[EMAIL PROTECTED]<julio.neves%40gmail.com>> > > > escreveu: > > > > > > > > Fala Edgard, > > > > se me lembro da sua dúvida anterior, o que vc precisa é colocar o mv > > > > dentro > > > > de um laço. Se for isto mesmo (e a minha sanidade estiver ok), :) as > > > > linhas > > > > abaixo resolvem: > > > > > > > > for arq in arquivo* > > > > do > > > > mv $arq /diretorio/pasta/$(sed 's/.../.../ <<< $arq) > > > > done > > > > > > > > O <<< é para substituir um "echo $arq | sed ..." > > > > > > > > Se for isso que vc quer, me deves uma consulta qdo eu for a SP. :) > > > > > > > > Feliz Natal e suShellso, > > > > Julio > > > > > > > > Em 07/12/07, Fabiano Caixeta Duarte > > <[EMAIL PROTECTED]<fcd.listas%40xxxxxxx> > > > <fcd.listas%40gmail.com>> > > > > escreveu: > > > > > > > > > > Mostre a listagem original e seu objetivo pra facilitar a ajuda. > > > > > > > > > > Atenciosamente, > > > > > > > > > > -- > > > > > Fabiano Caixeta Duarte > > > > > Especialista em Redes de Computadores > > > > > Linux User #195299 > > > > > Ribeirão Preto - SP > > > > > > > > > > Em 06/12/07, Edgard Costa