Re: Renomear arquivos
Ocorre o erro porque você tem que incluir um escape antes do espaço.
Eu consegui resolver o problema, mas um pouquinho diferente de como vc
estava tentando fazer. Mas com o resultado desejado.
#!/bin/sh
# Cria um arquivo com a listagem do diretório escolhido
/bin/ls /tmp/teste > /tmp/apaga.$$
(
while read dir; do
novo_dir=`echo $dir|tr '[:upper:]' '[:lower:]'`
if [ "$dir" != "$novo_dir" ]; then
# faz um escape dos espaços
dir=${dir// /\ }
novo_dir=${novo_dir// /\ }
mv "$dir" "$novo_dir"
fi
done
) < /tmp/apaga.$$
rm /tmp/apaga.$$
--
Gutemberg
On Tue, Mar 11, 2003 at 01:00:33PM -0300, Wilson Dias Goi wrote:
> Tentei fazer uma script que alterasse um caracter para outro nos arquivos,
> atraves da renomeacao de arquivos.
> A maioria dos arquivos tem espacos em branco.
> Tentei de varias formas mas o mv sempre da a mensagem : "mv: ao mover
> multiplos arquivos o ?ltimo argumento deve ser um diretorio"
> Por exemplo, aqui tentei converter caracteres maiusculos em minusculos:
>
> for x in /bin/ls $dir; do
> y=_cho $x | tr '[:upper:]' '[:lower:]'
> if [ $x != $y]; then
> mv $x $y
> fi
> done
>
> Ja consultei varias documentacoes e nada encontrei sobre este problema.
> Alguem tem uma dica ?
>
> Wilson
>
>
> --
> To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
Reply to: