[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:[shell-script] Nome de arquivos
From: |
MrBiTs |
Subject: |
Re:[shell-script] Nome de arquivos |
Date: |
Mon, 6 Dec 2004 06:14:41 -0300 |
> Fala galera esperta!
> Tenho o seguinte shell script:
>
> for files in *; do
> newNome=`echo $files | tr -d ' '`
> mv $files $newNome
> done
>
> o objetivo é retirar os espaços dos nomes de arquivos, entretanto, não
> funfa.
> se eu for no console e digitar:
>
> $NomeFreak="bad bad server... no fucking donut for you"
> $echo $NomeFreak | tr -d ' '
> badbadserver...nofuckingdonutforyou
>
> obviamente que se eu fizesse um
> $mv paz.txt $NomeFreak
>
> ele ira mudar paz.txt para badbadserver...nofuckingdonutforyou,
> contudo a técnica não funciona dentro do script. Alguem pode me dar
> uma mão?
>
Ola, Daniel
Veja isso:
[root(frodo)lixo]# for files in * ; do newnome=`echo $files | tr -d ' '`; mv
$files $newnome;done
mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
Como $files ai contem espacos, o mv acha que vc esta movendo varios arquivos.
Entao, é simples: proteja $files, colocando-o entre aspas duplas:
ls -1t
Esse arquivo e meu e eu dou para ele o nome que eu quiser
The quick brown fox jumps over the lazy dog
for files in * ; do newnome=`echo $files | tr -d ' '`; mv "$files" $newnome;done
ls -1t
Essearquivoemeueeudouparaeleonomequeeuquiser
Thequickbrownfoxjumpsoverthelazydog
[]´s
[As partes desta mensagem que não continham texto foram removidas]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re:[shell-script] Nome de arquivos,
MrBiTs <=