Comùment trier des fichiers en shell

Résolu
shellaviva Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 427
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 427
 
Tu ne sais pas cliquer sur les liens et lire ?
0
shellaviva Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
surement !
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 427
 
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   Statut Membre Dernière intervention  
 
si j'avais trouvé je ne serais pas la
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 427
 
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   Statut Membre Dernière intervention   70
 
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
shellaviva
 
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   Statut Membre Dernière intervention   70
 
Gné ?

Tu es sur quel OS ? Un BSD ?
0
shellaviva
 
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   Statut Membre Dernière intervention   70
 
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
shellaviva
 
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   Statut Membre Dernière intervention   70
 
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
shellaviva
 
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   Statut Contributeur Dernière intervention   6 427
 
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