ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Annonce

Les Ubuntu-partys sont l'occasion pour beaucoup d'entre vous d'acquérir les goodies Ubuntu-fr faits par nos petites mains avec amour.
Pour tous les autres, fini le désespoir de les manquer wink Il est désormais possible de vous procurer l'objet de votre choix grâce à la boutique en ligne, commune à Framasoft et Ubuntu-fr. Vous pourrez déjà y trouver mugs, t-shirts et, bien sûr, les Framakey Ubuntu-fr Remix.

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

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

Code:

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

)

Code:

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)

Hors ligne

 

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

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 !

Hors ligne

 

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

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) :

Code:

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)

Code:

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)


#! Crunchbang Linux !

En ligne

 

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

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)

Code:

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 :

Code:

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

voilà wink


#! Crunchbang Linux !

En ligne

 

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

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

Bonsoir

Avec cet exemple précis, on pourrait faire :

Code:

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

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

merci à tous pour vos réponses big_smile

Hors ligne

 

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

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

Hors ligne

 

Pied de page du Forum

Propulsé par FluxBB
Style adapté par Ogcreation.fr.