[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[bash] Find dentro a for



Salve a tutti,

non riesco a capire come convertire i nomi dei file da maiuscoli a
minuscoli per i file che contengono anche spazi. I 3 file sono (escluse
ovviamente le virgolette):

"PaPerino Topolino.AbC"
"Pippo.abc"
"PLUTO.ABC"


Questo script:
----------------------------------
for i in `find . -iname "*abc"`; do
	lower="$(echo "$i" | tr '[A-Z]' '[a-z]')"
	echo "Nome normale: " "$i"
	echo "Nome minuscolo: " "$lower"
	#mv "$i" "$lower"
done
----------------------------------

stampa:
----------------------------------
Nome normale:  ./PaPerino
Nome minuscolo:  ./paperino
Nome normale:  Topolino.AbC
Nome minuscolo:  topolino.abc
Nome normale:  ./Pippo.abc
Nome minuscolo:  ./pippo.abc
Nome normale:  ./PLUTO.ABC
Nome minuscolo:  ./pluto.abc
----------------------------------

Ovvero tronca il nome agli spazi, mentre se aggiungo le "virgolette" al
find e lo faccio diventare così 
----------------------------------
for i in "`find . -iname "*abc"`"; do
----------------------------------

la stampa è la seguente:
----------------------------------
Nome normale:  ./PaPerino Topolino.AbC
./Pippo.abc
./PLUTO.ABC
Nome minuscolo:  ./paperino topolino.abc
./pippo.abc
./pluto.abc
----------------------------------

Ovviamente nessuna nelle due mi va bene. Ci sto perdendo la testa da
un'ora, senza risultati :|

L'errore sicuramente è una banalità, ma non riesco a trovarlo.
Qualcuno mi aiuta? ;)

Grazie e ciao
InSa

-- 
++ Powered by Sid ++



Reply to: