[FoLUG] [BASH] script per togliere lo spazio
Masotti Alessandro
listaam@gmail.com
Mar 13 Dic 2005 15:58:20 CET
che ne pensate avete da suggerire miglioramenti:
#!/bin/bash
#
#
# Sostituisce gli spazi nei nomi dei file presenti nella directory
#+ e sotto directory con degli underscore.
#-----------------dichiarazione variabili
globali-----------------------------------------
numero=0 # Per contare i file effettivamente rinominati.
UNO=1 # Per gestire correttamente il singolare/plurale
#+ (vedi oltre).
shopt -s nullglob
elenco_dir=(`find /home/masotti/Download/amule/ -iname "*"`)
let lunghezza=${#elenco_dir[*]}-1 #determino la lunghezza dell'array
dir_primaria=`pwd`
#----------------fine dichiarazione variabili
globali--------------------------------
#-----------------dichiarazione
funzioni-----------------------------------------
function rinomina() { #rinomina i file della
directory corrente
TROVATO=0 # Valore di ritorno in
caso di successo.
for nomefile in *
do
#echo $nomefile
echo "$nomefile" | grep -q " " # Controlla se il nome del
file
if [ $? -eq $TROVATO ] #+ contiene uno/degli
spazio(i).
then
NEWNAME=`basename "$nomefile" | sed -e 's/\ /_/g'` # Elimina
il percorso.
#+
Sostituisce lo spazio
#+ con un
underscore.
mv "$nomefile" "$NEWNAME" # Rinomina.
let "numero += 1"
fi
done
}
function percorri_dir(){
for nomefile1 in `seq 0 $lunghezza`
do
cd "${elenco_dir[nomefile1]}"
rinomina #chiamo la funzione per rinominare
cd $dir_primaria #ritorno alla dir iniziale cosi anche
se ho fatto
#+ cd di un file non combino disastri
done
}
function stampe(){
if [ "$numero" -eq "$UNO" ] # Per una corretta
grammatica.
then
echo "$numero file rinominato."
else
echo "$numero file rinominati."
fi
}
#-----------------fine dichiarazione
funzioni-----------------------------------------
#--------------------corpo programma-----------------------
percorri_dir #chiamo la funzione per rinominare i file
stampe #chiamo la funzione delle stampe
exit 0
#--------------------fine corpo programma------------------------------
Maggiori informazioni sulla lista
FoLUG