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

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

Re: [shell-script] Re: Qual é o modo certo


From: Flavio Junior
Subject: Re: [shell-script] Re: Qual é o modo certo
Date: Tue, 18 Dec 2007 16:41:25 -0200

E só pra não dizer que sua ideia tava errada...
Só faltou vc tratar o IFS ..

Veja, usando exatamente sua ideia:

[root@catatau:~/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
[root@catatau:~/test]# OLDIFS=$IFS
[root@catatau:~/test]# IFS='
> '
[root@catatau:~/test]# for file in *; do mv "$file" $(sed 's/Banco de
Dados //g' <<< $file); done
[root@catatau:~/test]# IFS=$OLDIFS
[root@catatau:~/test]# ls
A.txt  B.txt  C.txt  D.txt  E.txt
[root@catatau:~/test]#


(agora limpar os e-mails do corpo)

--

Flávio do Carmo Júnior

On Dec 18, 2007 4:34 PM, Flavio Junior <billpp@xxxxxxxx> wrote:
> Uma das formas.. bonita eu considero:
>
> # Listando os arquivos, que eu acho que eh o seu padrao
> [root@catatau:~/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
> [root@catatau:~/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
> [root@catatau:~/test]# while IFS=$'\n' read -r FILE; do mv "$FILE"
> "${FILE/Banco\ de\ Dados\ /}"; done < <(ls)
>
> # Conferindo
> [root@catatau:~/test]# ls
> A.txt  b.txt  c.txt  d.txt  e.txt
> [root@catatau:~/test]#
>
>
> Espero ter ajudado..
>
>
> --
>
> Flávio do Carmo Júnior
>
>
> On Dec 18, 2007 4:29 PM, Paulo Soares Drumond <psdrumond@xxxxxxxxxx> 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 <address@hidden> escreveu:
> >  >
> >  > me informa como vc tá fazendo
> >  >
> >  >
> >  > ----- Original Message -----
> >  > From: Paulo Soares Drumond
> >  > To: address@hidden <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
> > <address@hidden<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
> > <address@hidden<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


reply via email to

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