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

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

RES: [shell-script] Re: script que substitui espaços


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Re: script que substitui espaços
Date: Thu, 3 Mar 2005 15:21:45 -0300

if [ -f *\ * ]
then
 for i in *\ *.xml; do
 n=`echo "$i" | tr ' ' _`
 mv "$i" "$n"
 done
fi
| 
| Mesmo que não exista nenhum arquivo com espaço no nome ele entra no 
| loop e tenta fazer o mv, gerando assim uma mensagem de erro.
| 
| Como fazer para que entre no loop, somente se existir algum arquivo 
| com espaço no nome.
| 
| Att.
| 
| leonardo Vieira
| 
| 
| --- Em address@hidden, "Leonardo Vieira" 
| <leonardoflavieira@y...> escreveu
| > 
| > Valew galera, realmente era para renomear somente os arquivos de um 
| > determinado diretório e não de toda a sua raiz.
| > 
| > --- Em address@hidden, Gustavo Chaves 
| <gustavo@c...> 
| > escreveu
| > > >>>>> On Wed, 2 Mar 2005 20:04:39 -0300, Andreyev Dias de Melo 
| > <andreyevbr@g...> said:
| > > 
| > >   > Como sempre, TIMTOWTDI:
| > >   > $ find $diretorio -type f -name \*.old | while read LINE ; do 
| mv
| > >   > "${LINE}" "${LINE//\ /_}"; done
| > > 
| > > Um problema é que o mv provavelmente não está sendo chamado no 
| mesmo
| > > $diretorio.  Mais correto seria:
| > > 
| > >         mv "$diretorio/${LINE}" "$diretorio/${LINE//\ /_}"
| > > 
| > > Outro detalhe é que o find vai buscar arquivos em subdiretórios.  
| A
| > > especificação original do problema não era clara, mas eu entendi 
| que
| > > seria apenas para os arquivos do mesmo diretório.  Dá pra resolver
| > > isso com opções -maxdepth (ser for o find do GNU) ou -prune.
| > > 
| > > Na minha versão eu compliquei o glob usando "*\ *.old" ao invés de
| > > "*.old" pra só chamar o mv para os arquivos que contêm espaços.  É
| > > claro que chamando-o para os que não contém não muda o nome, mas 
| > pode
| > > criar muitos processos desnecessariamente.
| > > 
| > > Gustavo.
| 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| 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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




reply via email to

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