|
|
|
|
||||||
| fr.comp.os.unix Système UNIX. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
Bonjour
Je fais tourner un script (bash) sur les fichiers d'un répertoire. Pour l'instant la boucle est initialisée par find . -maxdepth 1 -type f | sed 's,^\./,,' | while read file Donc les fichiers sont traités par ordre alphabétique. Mais je voudrais que ces fichiers soient triés suivant le nombre éventuellement contenu dans leurs noms. la liste... 2_zaffreux_jojos_1102.jpg Concert_Mael_1054.jpg Concert_Mael_1059.jpg Concert_Mael_1067.jpg Concert_Mael_Lucille_1055.jpg Concert_Mael_Lucille_Hugo_1061.jpg Hugo_Mael_1222.jpg Hugues_Portrait_1159.jpg LaP_Delphine_1176.jpg LaP_HTD_1174.jpg ....doit être triée comme ceci: Concert_Mael_1054.jpg Concert_Mael_Lucille_1055.jpg Concert_Mael_1059.jpg Concert_Mael_Lucille_Hugo_1061.jpg Concert_Mael_1067.jpg 2_zaffreux_jojos_1102.jpg Hugues_Portrait_1159.jpg LaP_HTD_1174.jpg LaP_Delphine_1176.jpg Hugo_Mael_1222.jpg (Le nom d'un fichier ne contient jamais d'espace, mais le nombre de séparateurs "_" n'est pas constant et il peut ne pas y en avoir, s'il y a plusieurs nombres, c'est le dernier qui doit servir d'index) Je sens que je pourrais le faire sans la puissance des outils Unix (Gnu/Linux), mais je sens surtout que ça ne va pas être propre ![]() Bref, j'ai besoin d'un petit coup de main, comment faire ? Merci de votre aide -- > je voudrais un score-file d'enfer qui me marque comme lus tous les > posts contenant le mot winmodem # su news -c 'ctlinnd rmgroup fr.comp.os.linux.configuration' -+- EJ in Guide du linuxien pervers - Bien configurer son scorefile -+- |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
> Mais je voudrais que ces fichiers soient triés suivant le nombre
> éventuellement contenu dans leurs noms. Accroche-toi... find . -maxdepth 1 -type f | sed 's,\(\./\)\(.*[^0-9]\)\([0-9]\+\)\([^0-9]*\)$,\3 \2\3\4,' | sort -n | awk '{print $2}' |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
Le Sat, 25 Feb 2006 02:29:55 +0100, Joseph Balsamo a écrit:
> > Mais je voudrais que ces fichiers soient triés suivant le nombre > > éventuellement contenu dans leurs noms. > > Accroche-toi... .... au script je retire le shell. > find . -maxdepth 1 -type f | sed > 's,\(\./\)\(.*[^0-9]\)\([0-9]\+\)\([^0-9]*\)$,\3 \2\3\4,' | sort -n | awk > '{print $2}' Merci, ça marche... Et puis ça va me faire encore de la lecture pour comprendre comment le sed marche ;-) -- > Mais c'est une manie ! Je vous prierai de la mettre en veilleuse. Ma réponse était polie et j'y ai passé du temps malgrès votre attitude arrogante tout au long de ce fil. -+- JCD in Guide du linuxien pervers - "Les modéros perdent patience" -+- |
|
![]() |
| Outils de la discussion | |
|
|