Script shell GNU/linux

Résolu
alphon5o -  
 alphon5o -
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   Statut Modérateur Dernière intervention   4 896
 
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 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
Jipicy, t'es vraiment un pro du script shell toi ^^!
0
alphon5o
 
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
alphon5o
 
ce bon j'ai meme pas fait attention je vois comment il faut faire merci.
0