Renommage multiple de fichiers

quelqu’un saurait-il comment rédiger un shell script pour faire un renommage automatique de 196 fichiers :
f101_dat.gz => F101.dat.gz
à
f196_dat.gz => F196.dat.gz

(la 1ère lettre doit passer de minuscule à majuscule; le underscore -tiret bas _ doit être remplacé par un point)

merci d’avance

Eric

  • remplacer underscore par point $for fichier in $(find . -type f); do mv $fichier $(echo $fichier | tr ["\_"] ["\."]);done

-remplacer les majuscules par des minuscules $for fichier in $(find . -type f); do mv $fichier $(echo $fichier | tr [":upper:"] [":lower:"]);done

c’est facile je les avaient déjà fait ^^

Sinon il existe des outils graphiques :slightly_smiling:

[quote=“Ludo”]- remplacer underscore par point $for fichier in $(find . -type f); do mv $fichier $(echo $fichier | tr ["\_"] ["\."]);done

-remplacer les majuscules par des minuscules $for fichier in $(find . -type f); do mv $fichier $(echo $fichier | tr [":upper:"] [":lower:"]);done

c’est facile je les avaient déjà fait ^^

Sinon il existe des outils graphiques :slightly_smiling:[/quote]

merci pour ces infos : le changement du underscore par le point marche nickel; par contre je voulais passer seulement la 1ière lettre en majuscule; pas spécialiste des scripts malheureusement, j’ai cru décoder que c’est tout lettre en minuscule qui passerait en majuscule, et pas seulement la 1ère (n’y a t’il pas une solution ?). En lançant le script, ça s’est confirmé. Sinon, quels sont ces outils graphiques , si jamais tu te rapelle d’un ou 2 noms.

bjr il y a aussi gprename ou krename qui font ça en mode graphique

rename en ligne de commande

Pour rename, la syntaxe est la suivante:

[quote]
quelqu’un saurait-il comment rédiger un shell script pour faire un renommage automatique de 196 fichiers :
f101_dat.gz => F101.dat.gz
à
f196_dat.gz => F196.dat.gz[/quote]

Cela devrait marcher:

rename 's/f([0-9]{3})_/F$1\./g' f1[1-8][0-9]_dat.gz
rename 's/f([0-9]{3})_/F$1\./g' f10[1-9]_dat.gz
rename 's/f([0-9]{3})_/F$1\./g' f19[0-6]_dat.gz

La première ligne traite les cas de 110 à 189, la seconde de 101 à 109 et la troisième ce qu’il reste. C’est un peu tard ceci-dit!

J’ai installé “krename” sous Blag 60001 (pas dispo sous Debian lenny, mon autre distro GNU/Linux). Merci pour cette info, car ce s/w graphique est bien pratique.

[quote=“ziouplaboum”]Pour rename, la syntaxe est la suivante:

[quote]
quelqu’un saurait-il comment rédiger un shell script pour faire un renommage automatique de 196 fichiers :
f101_dat.gz => F101.dat.gz
à
f196_dat.gz => F196.dat.gz[/quote]

Cela devrait marcher:

rename 's/f([0-9]{3})_/F$1\./g' f1[1-8][0-9]_dat.gz
rename 's/f([0-9]{3})_/F$1\./g' f10[1-9]_dat.gz
rename 's/f([0-9]{3})_/F$1\./g' f19[0-6]_dat.gz

La première ligne traite les cas de 110 à 189, la seconde de 101 à 109 et la troisième ce qu’il reste. C’est un peu tard ceci-dit![/quote]
Pas de souci pour le temps de réponse. L’important, c’est d’être patient, et respectueux de ceux qui ne vont pas sur le forum seulement pour leurs pbs mais qui aident les autres parce que leurs compétences Debian/Linux le leur permettent. Merci ziouplaboum.

Ça veut dire que ça marche alors? JeSuisContentAlors! :smt004

RESOLU : renommage multiple de fichiers

Dernière proposition de solution --> 21 Janvier
Modifié en Résolu --> 12 Juillet

:smt005 :smt005 Mieux vaut tard que jamais? :smt005 :smt005

Dernière proposition de solution --> 21 Janvier
Modifié en Résolu --> 12 Juillet

:smt005 :smt005 Mieux vaut tard que jamais? :smt005 :smt005[/quote]

Oui, toutes mes excuses pour ce retard impardonnable.