[Linux-31] renommer des fichiers
jdd
jdd at dodin.org
Ven 17 Avr 16:53:55 CEST 2015
Le 04/04/2015 10:49, jpcas a écrit :
> Salut,
>
> Une façon de faire parmi d'autres…
> Ce n'est sûrement pas la plus jolie ni la plus optimisée ;-\
mais elle marche très bien!
> ============================
> Le script
> ============================
> #! /bin/bash
>
> while IFS="." read pref suf
IFS indique que le séparateur va être le ".".
read remplit les variables pref (préfixe) et suf (suffixe) avec ce qui
est avant et ce qui est après le premier point (à priori ca ne
marcherait pas s'il y a avait plusieurs points)
> do
> nom="${pref}.${suf}"
le nom initial du fichier
> suf1="${suf//[^[:alpha:]]/}"
dans suf1 la partie lettre du suffixe
> suf2="${suf//[^[:digit:]]/}"
dans suf2 la partie numérique
> suf2="$(printf '%03d' ${suf2})"
la partie numérique est alignée à gauche sur trois caractères, avec des
zéros pour remplacer les vides
> mv -v "${nom}" "${pref}.${suf2}.${suf1}"
changement de nom du fichier. J'ai préféré écrire ${pref}-${suf2) pour
ne pas avoir deux points dans le fichier résultat (on ne sait jamais si
ca va être lû)
> done < <(ls *.mts*)
je suppose que c'est la fin qui envoie au script les noms de fichier,
mais là je suis un peu largué :-(
merci
jdd
Plus d'informations sur la liste de diffusion Linux-31