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

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

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


From: Alain
Subject: Re: [shell-script] Re: script que substitui espaços
Date: Fri, 04 Mar 2005 11:55:26 -0300
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Achei isto num script:

#to fix space characters problem ??
FILE_PATH=${FILE_PATH//" "/"%20"}

simples e como é interno ao bash deve ser mais rápido.
É só configurar pelo que deve ser trocado o " "

Alain

Leonardo Vieira escreveu:

Ah galera tem uma coisa se eu usar o script abaixo:

for i in *\ *.xml; do
n=`echo "$i" | tr ' ' _`
mv "$i" "$n"
done

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]