Script shell GNU/linux

Résolu/Fermé
alphon5o - 17 déc. 2009 à 20:46
 alphon5o - 17 déc. 2009 à 21:22
Bonjour,
je cherche a faire un script sh ou bash qui me permet de renommer des fichier contenu dans un repertoire.
il ya des fichiers dont le nom contient des espaces ou des extensions en majuscule, pas pratique quand on est sur linux. alors j'aimerais que mon script me fasse le renomage en mettant en minuscule les extentions et de me supprimer les espaces et les caracteres speciaux. merci pour vos contributions.
A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
17 déc. 2009 à 20:57
Salut,

Une solution :

[rep]$ ls -1
Encore un Tout pourri.PNG
Mon Autre Fichier tout plein d espaces.JPG
Mon Ficher avec des espaces.TXT

[rep]$ for fich in *; do mv "${fich}" "$(echo ${fich} | sed 's/ /_/g;s/\..*/\L&/')"; done

[rep]$ ls -1
Encore_un_Tout_pourri.png
Mon_Autre_Fichier_tout_plein_d_espaces.jpg
Mon_Ficher_avec_des_espaces.txt

[rep]$

;-))
5
Kharec Messages postés 4143 Date d'inscription dimanche 20 avril 2008 Statut Contributeur Dernière intervention 8 mai 2011 509
17 déc. 2009 à 21:03
Jipicy, t'es vraiment un pro du script shell toi ^^!
0
merci jipicy c'est parfait. mais juste une petite question pour finir ceci il ya des caractere ( exple = ) dans un nom de fichier comment je fait pour le supprimer lui aussi( le =) ou de maniere general comment enlever ce qui nous convient pas.
encore merci j'avais trop galere avec tr mais sed et enorme c la deuxieme fois qu'il me sauve la vie ... merci..
0
ce bon j'ai meme pas fait attention je vois comment il faut faire merci.
0