Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/12/2008, à 20:05

sensini

lister les fichiers et trier selon le nom, avec des numéros

Bonjour,

je chercher à faire un ptit script, et je bute sur un problème.

Supposons que j'ai les fichiers suivants (créés par par exemple

for i in `seq 1 1 20`; do touch mon_fichier${i}_du_texte_different_.ext; done

)

mon_fichier10_du_texte_different.ext
...
mon_fichier19_du_texte_different.ext
mon_fichier1_du_texte_different.ext
mon_fichier20_du_texte_different.ext
mon_fichier2_du_texte_.different.ext
...
mon_fichier9_du_texte_.ext

(je sais que l'on peut faire un `seq -f%02g 1 1 20` par exemple, mais je n'ai pas le contrôle de leur création)

Bref, que je fasse un sort -n, sort -g je n'arrive pas à les trier correctement.

Y a-t-il moyen de faire ça sans les renommer ? (ce qui risque d'être délicat, le "texte different" pouvant avoir des chiffres dedans...)

Dernière modification par sensini (Le 16/12/2008, à 11:00)


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#2 Le 15/12/2008, à 20:58

AnsuzPeorth

Re : lister les fichiers et trier selon le nom, avec des numéros

Et en triant sur la date de modification ? (si les fichiers n'ont pas réelement été créer comme ta commande, car il n'y a pas assez d'ecart dans le temps pour trier sur la date dans ce cas là.)

Y a-t-il moyen de faire ça sans les renommer ? (ce qui risque d'être délicat, le "texte different" pouvant avoir des chiffres dedans...

Pour renommer, si le début du nom jusqu'au chiffre est tjrs identique, ca devrait pas etre trop dur !


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#3 Le 15/12/2008, à 21:52

Totor

Re : lister les fichiers et trier selon le nom, avec des numéros

Bonsoir,

Postulat :
Le début de tes noms de fichiers ne contient aucun numérique ou si c'est le cas, il est identique à tous les fichiers et n'est pas suivi d'un underscore (d'ailleurs, si ce n'était pas le cas, ta question n'aurait aucune raison d'être) :

ls -1 mon_fichier*|grep -o "[0-9]\+_"|sort -n|xargs -I{} echo ls mon_fichier{}*|bash

EDIT :  Le ls directement avec xargs ne fonctionne pas car le * est considéré comme caractère à par entière du nom de fichier. C'est pourquoi il faut "ruser" et envoyer la commande à bash (ou autre, tu peux changer à ta guise)

Si je m'exprime mal, voilà ce qui ne fonctionne pas (alors que c'est un peut l'intérêt de xargs)

ls -1 mon_fichier*|grep -o "[0-9]\+_"|sort -n|xargs -I{} ls mon_fichier{}*

Dernière modification par Totor (Le 15/12/2008, à 21:57)


-- Lucid Lynx --

Hors ligne

#4 Le 15/12/2008, à 22:07

Totor

Re : lister les fichiers et trier selon le nom, avec des numéros

Totor a écrit :

EDIT :  Le ls directement avec xargs ne fonctionne pas car le * est considéré comme caractère à par entière du nom de fichier. C'est pourquoi il faut "ruser" et envoyer la commande à bash (ou autre, tu peux changer à ta guise)

Si je m'exprime mal, voilà ce qui ne fonctionne pas (alors que c'est un peut l'intérêt de xargs)

ls -1 mon_fichier*|grep -o "[0-9]\+_"|sort -n|xargs -I{} ls mon_fichier{}*

En fait, avec une légère modif, ça fonctionne :

ls -1 mon_fichier*|grep -o "[0-9]\+_.*"|sort -n|xargs -I{} ls mon_fichier{}

voilà wink


-- Lucid Lynx --

Hors ligne

#5 Le 15/12/2008, à 22:29

Alain.g

Re : lister les fichiers et trier selon le nom, avec des numéros

Bonsoir

Avec cet exemple précis, on pourrait faire :

ls | sort -n -k 2 -t r

ou en plus compressé : sort -nk2 -tr


Xubuntu Karmic !

Hors ligne

#6 Le 15/12/2008, à 23:16

sensini

Re : lister les fichiers et trier selon le nom, avec des numéros

merci à tous pour vos réponses big_smile


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#7 Le 16/12/2008, à 10:53

sensini

Re : lister les fichiers et trier selon le nom, avec des numéros

J'ai finalement retenu la solution d'Alain.g, mais un grand merci à Totor pour m'avoir fait découvrir l'option -I de xargs!

Voilà ce que ça donne : Renommer des sous-titres pour mplayer wink


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne