[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] script que substitui espaços
From: |
Gustavo Chaves |
Subject: |
Re: [shell-script] script que substitui espaços |
Date: |
02 Mar 2005 23:38:20 -0300 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 |
>>>>> On Wed, 2 Mar 2005 20:04:39 -0300, Andreyev Dias de Melo <address@hidden>
>>>>> 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.