Nous sommes le Sam 19 Juil, 2025 14:17
Supprimer les cookies

Liste de fichiers : ordre naturel vs ordre lexicographique

Perdu dans la migration ? Demandez votre chemin, on peut peut-être vous aider.

Sam 12 Fév, 2005 19:00

Bonjour!

Je suis face à un problème inexistant sous Windows et qui semble difficile à résoudre sous Linux. Je dois manipuler un ensemble de photos nommées comme suit :

Code: Tout sélectionner
photo1.jpg
photo2.jpg
...
photo10.jpg
photo11.jpg
...


Sous windows, l'affichage des fichiers se fait dans l'ordre naturel :
Code: Tout sélectionner
photo1.jpg
photo2.jpg
...
photo10.jpg
photo11.jpg



Sous Linux, l'affichage des fichiers se fait dans l'ordre lexicographique :
Code: Tout sélectionner
photo1.jpg
photo10.jpg
photo11.jpg
photo2.jpg
...


Je n'ai pas trouvé d'options dans Konqueror (ni dans ls, d'ailleurs) permettant d'utiliser l'ordre naturel.

Alors, ma question est la suivante : est-il possible d'utiliser l'ordre naturel sous Linux?
Dans le cas contraire, est-il possible de renommer élégamment ces photos pour que l'affichage dans l'ordre lexicographique soit cohérent?

Finalement, je tiens à préciser que ne peux pas me baser sur les données Exif de date de prise de vue pour trier les photos, puisque l'appareil n'a pas enregistré cette information.

Merci de votre aide.
Matts

Messages : 5

Sam 12 Fév, 2005 21:30

Bonsoir,

La manière de renommer les fichiers est de toujours metre le numero sur 2 ou 3 caractères. l'image 1 sera 001, la 2 -> 002 ... Cela permet d'obtenir un tri lexicographique cohérent.

Si tu veux horodater le nom de fichier, l'astuce (pour qu'ils apparaissent dans le bon ordre selon l'ordre lexicographique) est de mettre l'année puis le mois et enfin le jour (et éventuellement heures, minutes, secondes) ainsi pour un fichier créé aujourd'hui à 21h10, cela donne fichier-20050212211000.txt

Il te reste à écrire un script en shell qui renomme les fichiers (si tu en as beaucoup).

J'espère que cela répond à ton problème...
armen

Messages : 408

Dim 13 Fév, 2005 18:36

armen a écrit:mettre l'année puis le mois et enfin le jour

En Suède (où j'ai passé un an), la date s'écrit toujours comme ça, et c'est vrai que c'est bien pratique pour les systèmes informatiques. Depuis, j'ai gardé cette manière de dater mes fichiers, dossiers etc.

/glattering
glattering

Messages : 396
Géo : Montréal

Dim 13 Fév, 2005 19:36

Matts a écrit:Bonjour!
Dans le cas contraire, est-il possible de renommer élégamment ces photos pour que l'affichage dans l'ordre lexicographique soit cohérent?


GQview te permettra d'avoir des photo01.jpg (ou 001.jpg), bref, de renommer toute une série très facilement.
Sebastien

Messages : 730
Géo : Sainte-Marie (974)

Dim 13 Fév, 2005 20:25

Merci pour vos réponses... même si ce ne sont pas celles que j'attendais! :-)

En fait, je souhaiterais vraiment avoir plus d'infos sur l'affichage dans l'ordre naturel sous linux, sachant que je n'ai rien trouvé sur le net. En fait, la seule page que j'ai trouvé concerne les macs.

En plus, ca me semble indispensable pour l'utilisateur final en termes de propagande pro-linux... ;-)

Et en ce qui concerne le renommage, je me suis mal exprimé, mais je connaissais déjà la manière de nommer correctement les fichiers, ce que je souhaitais savoir, c'est s'il existait une commande qui analyserais les noms de fichiers et renommerais automatiquement les photos (en 01 s'il y a jusqu'à 99 photos, en 001 s'il y a jusqu'à 999 photos, et ainsi de suite...).
Matts

Messages : 5

Dim 13 Fév, 2005 21:14

Salut,
http://sourcefrog.net/projects/natsort/
peut être ?

Clairement, c'est un manque dans ls, meme s'il y a dans les versions récentes une option ls --sort=version
*Nouveau venu ? Lisez les règles d'utilisation de ce forum
*Une question à poser ? Assurez vous qu'on vous répondra
*Soutenir Framasoft ? Participez à l'annuaire !
*"T'es où ?" Inscrivez vous sur la FramaMap
pyg

Avatar de l’utilisateur
Messages : 7858
Géo : Lyonnais

Dim 13 Fév, 2005 21:21

Encore moi.

Plus simple peut être :
http://www.macosxhints.com/article.php? ... 4161328982

Code: Tout sélectionner
ls | sort -n +2

ben oui, fallait y penser ;)

Mais bon, forcément, sous konqueror....
*Nouveau venu ? Lisez les règles d'utilisation de ce forum
*Une question à poser ? Assurez vous qu'on vous répondra
*Soutenir Framasoft ? Participez à l'annuaire !
*"T'es où ?" Inscrivez vous sur la FramaMap
pyg

Avatar de l’utilisateur
Messages : 7858
Géo : Lyonnais

Dim 13 Fév, 2005 22:03

pyg a écrit:
Code: Tout sélectionner
ls | sort -n +2

ben oui, fallait y penser ;)

ne fonctionne pas ici.
En cherchant un peu j'ai trouvé des solutions en C, en perl
et tout simplement avec la commande ls comme pyg le propose (trop) rapidement :
Code: Tout sélectionner
ls --sort=version

(et avec l'option -1 pour mettre en colonne) :
Code: Tout sélectionner
$ls  --sort=version   -1
photo1
photo2
photo3
photo10
photo11
photo21
photo111

Pour le renommage, Sebastien te proposait une solution qui semble facile à mettre en oeuvre avec GQview (pas téstée ici mais en générale il ne raconte pas de salade ce garçon).
Vincent

Messages : 658
Géo : Lyon

Mer 16 Fév, 2005 13:45

Merci!
Code: Tout sélectionner
ls --sort=version
fonctionne bien!
Je reste cependant à l'affut d'un greffon ou d'une configuration de Konqueror qui ferait la même chose...
Matts

Messages : 5

Sam 12 Mars, 2005 11:31

Bon, finalement, on peut renommer ses fichiers avec un script du genre :

Code: Tout sélectionner
noImg=0;
for i in $(ls --sort=version *.jpg); do
   noImg=`expr $noImg + 1`;
   # On renomme le nom de fichier par un nombre
   # (ici seq ne sert qu'a ajouter à ce nombre des zéros de bourrage en tête)
   mv -v $i  $(seq --format=%04g $noImg $noImg).jpg
done


Je doute qu'il s'agisse du code le plus "propre" et le plus optimisé, mais ca fonctionne bien chez moi...
Vous pouvez télécharger ce script (un peu plus complet, avec des paramètres) à cet endroit de ma page Debian.
En esperant que ca puisse servir...
Matts

Messages : 5

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit