trop souvent je vois des gens utiliser des scripts perl pour supprimer l'extention d'une variable contenant le nom d'un fichier. Bash sait faire cela tout seul comme un grand. Voici donc 2-3 trucs pour la gestion dynamique des variables:
Exemple: renommer tout les .dat en .txt
for x in `ls *.dat`
do
mv $x ${x%.*}.txt
done
Bon dans le genre on a aussi la substitution de texte dans une variable. Dans le même genre d'exemple remplacer tout les fichiers qui ont des espaces dans le nom par des underscore (_).
for x in `ls | grep \ `
do
mv $x ${x// /_}
done
pour plus d'info:
man bash
EDIT/PS:
Ah oui en faite j'ai oublier de préciser, mais l'exemple est innutil dans le cas d'un renommage de fichier (c'était juste comme exemple). Pour ça on a la fonction rename:
rename -n 's/\.dat$/\.txt/' *.dat
rename -n 's/ /_/g' *
pour les 2 exemples respectivement. L'option -n permet de ne pas faire les changements, mais d'afficher seulement ce que cela va faire. Pratique pour être sûr de ce que l'on fait et ne pas faire de bêtises.