Comùment trier des fichiers en shell

Résolu/Fermé
shellaviva Messages postés 4 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 6 juillet 2011 - 6 juil. 2011 à 15:17
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 7 juil. 2011 à 18:43
Bonjour,
je debute en shell et j'ai un petit souci
je dois trier des fichiers dans l'odre et recuperer le dernier pour le traiter
exemple:
s1.toto
s2.toto
s9.toto
s10.toto
s20.toto
s99.toto

merci d'avance
A voir également:

13 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
6 juil. 2011 à 15:25
Bonjour,

Ma réponse n'a pas changé ;-))


PS. Faudrait peut être arrêter de se foutre de la gueule du monde, non ? ;-\
0
shellaviva Messages postés 4 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 6 juillet 2011
6 juil. 2011 à 15:40
Excuser moi je reste poli, je n'ai pas trouvé la reponse à ma question
le ls est bien j'ai testé les options mais mon tri ne fonctionne pas correctement.
le s10.toto vient avant le s9.toto. je m'y prends peut être mal !
alors si votre reponse n'a pas changé merci de passer.
je pense que cette reponse n'a pas sa place ici:" PS. Faudrait peut être arrêter de se foutre de la gueule du monde, non ? ;-\ ".
ma fille qui vient de lire votre reponse est aussi coquée que moi alors svp...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
6 juil. 2011 à 15:43
Tu ne sais pas cliquer sur les liens et lire ?
0
shellaviva Messages postés 4 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 6 juillet 2011
6 juil. 2011 à 15:45
surement !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
6 juil. 2011 à 15:46
Et donc en 2 jours tu n'as toujours pas trouvé ne serait-ce qu'un début de piste ?
0
shellaviva Messages postés 4 Date d'inscription mercredi 6 juillet 2011 Statut Membre Dernière intervention 6 juillet 2011
6 juil. 2011 à 15:49
si j'avais trouvé je ne serais pas la
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
6 juil. 2011 à 15:52
Ben relis bien les liens y'a tout ce qu'il te faut dedans ;-)

Fais au moins l'effort de taper ces commandes (ls pour commencer et tail par la suite) avec les options qui vont bien dans ton shell et de voir ce qu'elles font.

N'hésites pas à poster tes essais ici (ou là-bas), qu'on voit ce que tu fais et qu'on puisse t'aiguiller...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
6 juil. 2011 à 16:48
RTFM, comme dirais zipe31 ^^
Lire le man de la commande ls t'aidera beaucoup : http://pwet.fr/man/linux/commandes/ls/ . C'est la base.

Enfin bon, vu que tu n'as pas l'air d'apprécier la lecture.
Essaye de regarder du coté de ls -v. Ex:
 #!/bin/bash

touch s1.toto
touch s2.toto
touch s9.toto
touch s10.toto
touch s20.toto
touch s99.toto 

ls

ls -v
0
Merci beaucoup , j'avais deja essayé hier mais
ls -v me renvoie une erreur sur mon poste
ci-joint
ls: illegal option -- v

je regarde
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 7/07/2011 à 13:32
Gné ?

Tu es sur quel OS ? Un BSD ?
0
je suis sur AIX
ci-joint les options diponibles avec le ls sur AIX

usage: ls [-1ACFHLNRabcdefgilmnopqrstuxEUX] [File...]

merci
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
7 juil. 2011 à 14:53
Mhh d'après le man de ls sur AIX, il n'y a pas d'équivalent de près ou de loin au ls -v sur Unix...
Et je vois pas trop comment le faire simplement sans ça, désolé ^^"
0
Merci beaucoup quand meme, j'ai lu la plupart des manuels mais je n'ai pas trouvé d'equivalent du ls -v.

J'ai quand meme reussi à trouver comment le faire si les donnees etaient dans un fichier ficin :

S1.XXXXX
S2.XXXXX
S6.XXXXX
S7.XXXXX
S8.XXXXX
S9.XXXXX
S10.XXXXX
S11.XXXXX
S12.XXXXX
S13.XXXXX
S20.XXXXX
S21.XXXXX
S22.XXXXX


sed "s/^S//" ficin > ficout

ficout

1.XXXXX
2.XXXXX
6.XXXXX
7.XXXXX
8.XXXXX
9.XXXXX
10.XXXXX
11.XXXXX
12.XXXXX
13.XXXXX
20.XXXXX
21.XXXXX
22.XXXXX

sort -t"." -k1n,1n ficout > tmp

tmp

1.XXXXX
2.XXXXX
6.XXXXX
7.XXXXX
8.XXXXX
9.XXXXX
10.XXXXX
11.XXXXX
12.XXXXX
13.XXXXX
20.XXXXX
21.XXXXX
22.XXXXX


sed "s/^/S/" tmp > ficin

ficin

S1.XXXXX
S2.XXXXX
S6.XXXXX
S7.XXXXX
S8.XXXXX
S9.XXXXX
S10.XXXXX
S11.XXXXX
S12.XXXXX
S13.XXXXX
S20.XXXXX
S21.XXXXX
S22.XXXXX

il faut que je trouve comment le faire sur des fichiers maintenant !
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 7/07/2011 à 16:52
Bah t'as la solution là, non ? Suffit d'utiliser quelques "pipe" |
je ne connais pas trop la syntaxe sur AIX mais ça devrait marcher à peu près :
ls -1 | sed 's/^s//' | sort -n | sed 's/^/s/' 

C'est un "un" pas un "L" après le ls.
0
CA FONCTIONNE ! UN GRAND MERCI
j'avoue que faire du developpement sans formation c'est un peu galere surtout à un certain age......

UN GRAND MERCI à VOUS TOUS !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
7 juil. 2011 à 18:43
Vu que tu as fait des efforts ;-))

$ ls -1
S100.txt
S10.txt
S1.txt
S20.txt
S2.txt
S50.txt
S5.txt
S9.txt

$ ls -1 | sort -t '.' -k 1.2,1n
S1.txt
S2.txt
S5.txt
S9.txt
S10.txt
S20.txt
S50.txt
S100.txt

Et au cas ou le "sort" d'AIX aurait l'option "-V", ça le fait aussi :
 ls -1 | sort -V

;-))
0