Newsgroup: it.comp.os.linux.iniziare
Titolo: Aiuto script rinominare file

Ciao a tutti,
Ho scaricato da un sito un pacchetto zip con il mirror di un sito web 
fatto da un allegro utonto windwsiano, ma ho il problema non 
indifferente che gli indirizzi delle pagine locali nei file sono 
indicati tutti in minuscolo (tipo index.htm), mentre i nomi dei file 
sono tutti in maiuscolo (tipo INDEX.HTM).
Vorrei fare uno script che rinomini tutti i file (e sono parecchi) 
trasformando i nomi in minuscolo, avete idea di come posso fare?
ciao
gerlos
-- 
"Solo lo scienziato è vero poeta: ci dà la luna, ci promette le stelle,
  ci farà un nuovo universo se sarà il caso."
    _                                  Allen Ginsberg
   (y)        < 
http://gerlos.altervista.org
 >
    =   gerlos  + - - >  gnu/linux registred user #311588


 
rename 'y/A-Z/a-z/' * 
-- 
echo 152079117477642780034933529998195782666P | dc

 
Non l'ho capita (e non mi funziona). Nel mio man mi dice che devo usare 
una sintassi tipo:
rename da a file...
Mi spieghi come funziona rename nel tuo suggerimento?
grazie
ciao


 
Non mi funziona neanche questo (mv dice "mv: manca il file argomento"), 
a meno che non faccio
find . -type f -exec minuscole.sh ';'
e metto in minuscole.sh:
#/bin/bash
mv $1 `echo $1 | tr [A-Z] [a-z]`
exit
Non sono una potenza con la riga di comando, sapresti spiegarmi dov'è 
l'errore nel comando originario?
Il primo problema è risolto, ma vorrei capire meglio il funzionamento 
del tuo suggerimento.
Grazie mille


 Mi spieghi come funziona rename nel tuo suggerimento?
rename '[espressione perl]' (*)tutti i file
Io ho installato la versione Larry Wall da pacchetto debian e funziona. 
rename non e' un comando standard della bash prova questo:
ls|while read f ; do  echo $f | tr '[a-z]' '[A-Z]'; done
-- 
echo 152079117477642780034933529998195782666P | dc

 trasformando i nomi in minuscolo, avete idea di come posso fare? 
cerca chcase;
r
-- 
Hare hare supermarket !
Hare hare supermarket !
[Daevid Allen: Other Side of the Sky]
Ramapage: 
http://umpf.net/

 Io ho installato la versione Larry Wall da pacchetto debian e funziona.
ma perche' Larry Wall non l' ha chiamato in un altro modo? *groan*
ogni volta finisce che ci si imbroglia, in quanto "di serie" la maggior
parte delle distribuzioni usa un altro rename, meno potente di questo
-- 
Firma in costruzione

 trasformando i nomi in minuscolo, avete idea di come posso fare?
ls|while read f; do n="`echo $f|tr '[:upper:]' '[:lower:]'`";mv "$f" "$n";done
Se hai un albero di piu` directories, rimpiazza "ls" con
"find . -type f -print"
Esempio:
$ ls -1
a
B c D
E
$ find . -type f -print|while read f; do n="`echo $f|tr '[:upper:]' '[:lower:]'`";mv "$f" "$n";done
mv: `./a' and `./a' are the same file
$ ls -1
a
b c d
e
Come evitare il warning "are the same file" (che male non fa ma che puo` dare
fastidio)?
mv "$f" "$n"
diventa
[ "$f" != "$n" ] && mv "$f" "$n"
Versione finale:
find . -type f -print | while read f; do n="`echo $f | tr '[:upper:]' '[:lower:]'`"; [ "$f" != "$n" ] && mv "$f" "$n"; done
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch


Hai perfettamente ragione, poteva chiamarlo irename (improved rename)
visto che e' piu' potente.
-- 
echo 152079117477642780034933529998195782666P | dc