Comùment trier des fichiers en shell

Résolu
shellaviva Messages postés 4 Statut Membre -  
zipe31 Messages postés 34620 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

13 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Bonjour,

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

    PS. Faudrait peut être arrêter de se foutre de la gueule du monde, non ? ;-\
    0
  2. shellaviva Messages postés 4 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Tu ne sais pas cliquer sur les liens et lire ?
      0
  3. shellaviva Messages postés 4 Statut Membre
     
    surement !
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Et donc en 2 jours tu n'as toujours pas trouvé ne serait-ce qu'un début de piste ?
      0
  4. shellaviva Messages postés 4 Statut Membre
     
    si j'avais trouvé je ne serais pas la
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Leviathan49 Messages postés 267 Statut Membre 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
  7. 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
  8. Leviathan49 Messages postés 267 Statut Membre 70
     
    Gné ?

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

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

    merci
    0
  10. Leviathan49 Messages postés 267 Statut Membre 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
  11. 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
  12. Leviathan49 Messages postés 267 Statut Membre 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
  13. 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
  14. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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