[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: