[Toulibre] trie photos
Sylvain
sylvain-liste at marliere.org
Sam 26 Jan 19:01:52 CET 2013
Bonsoir momo,
Le petit script ci-dessous trie les fichiers d'un répertoire
aléatoirement puis leur ajoute un numéro croissant:
#!/bin/sh
if [ $# -lt 1 ] || [ ! -d $1 ]; then echo "Usage: `basename $0` dossier"
; exit ; fi
cpt=1
for file in `ls $1 | shuf` ; do
mv $1/${file} $1/${cpt}_${file}
cpt=`echo $cpt+1 | bc`
done
On peut améliorer en rajoutant des zéros de padding pour aligner à
droite les numéros croissants:
#!/bin/sh
if [ $# -lt 1 ] || [ ! -d $1 ]; then echo "Usage: `basename $0` dossier"
; exit ; fi
cpt=1
cptmax=`ls $1 | wc -l`
for file in `ls $1 | shuf` ; do
nb=`echo ${#cptmax}-${#cpt} | bc`
zeros=""
while [ $nb -gt 0 ] ; do
zeros=$zeros"0"
nb=`echo nb-1 | bc`
done
mv $1/${file} $1/${zeros}${cpt}_${file}
cpt=`echo $cpt+1 | bc`
done
Si le dossier passé en argument contient les fichiers:
file1.txt
file2.mp3
file3.odt
ils sont renommés par exemple:
1_file3.odt
2_file1.txt
3_file2.mp3
-Sylvain
On 25/01/2013 17:56, jdd wrote:
>>
>> for I in *.jpg ; do
>> ran=-$RANDOM ;
>> rename -- "." "$ran." $I
>> done
>>
> là j'ajoute une valeur random au nom de fichier pour empécher les robots
> de deviner trop facilement les noms. C'est facile de mettre le $ran en
> début de nom pour avoir le tri, je fais ca pour un cadre photo
>
> jdd
Plus d'informations sur la liste de diffusion Toulouse-ll