#1 Le 15/12/2008, à 19: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, à 10: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, à 19: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, à 20: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, à 20:57)
-- Lucid Lynx --
Hors ligne
#4 Le 15/12/2008, à 21:07
- Totor
Re : lister les fichiers et trier selon le nom, avec des numéros
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à
-- Lucid Lynx --
Hors ligne
#5 Le 15/12/2008, à 21: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, à 22:16
- sensini
Re : lister les fichiers et trier selon le nom, avec des numéros
merci à tous pour vos réponses
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, à 09: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
http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)
Hors ligne