Faltou um detalhe no laço. No caso do espaço, o find vai separar os arquivos
que tem espaço, logo, o $i ficará errado
Então, altere o IFS, conforme abaixo:

IFS="
"
for i in `find -iname "* *.*"`
do
         novo_nome=`tr " " "_" <<< $i`
done




2008/7/23 César Vianna <[EMAIL PROTECTED]>:

> Opa... vou listar os comandos necessários.. depois dá uma tentada e manda
> as dúvidas... acho que assim a lista pode te auxiliar melhor.
>
> Renomear - mv
> Trocar caracter - tr
> Buscar - find (opção -r para recursivo)
>
> Podes colocar dentro de um laço
>
> Ex.
>
> for i in `find -iname "* *.*"`
> do
>          novo_nome=`tr " " "_" <<< $i`
> done
>
>
> É por aí...
>
>
>
>
>
>
> 2008/7/23 Rafael Tomelin <[EMAIL PROTECTED]>:
>
>   Olá pessoal,
>>
>> Gostaria de ver com vocês, como que faço um script que busca dentro de um
>> determinado diretório "/home/dados" e sub-diretórios
>> "/home/dados/contabilidade", *arquivos* que contenham espaço no nome ou
>> "\". Ex.: "contabilidade discal" ou "contabilidade\patrimonial" ou
>> "contabilidade\sei lah \ o que".
>>
>> E alterar-se essas caracteres por "_".
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>
>
> --
> César Vianna
> -------------------
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>



-- 
César Vianna
-------------------
"Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
entre a realidade que existe e o sonho, que é a realidade que não existe."
Fernando Pessoa


[As partes desta mensagem que não continham texto foram removidas]

Responder a