[Ksh] inverser un fic pour le lire à l'envers

raoulglloq Messages postés 2 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Je voudrai lire un fichier à l'envers, de bas en haut.

J'utilise la fonction "while read line" qui ne semble pas le permettre.
Je pensai donc dans un premier temps inverser le fichier.

La commande sort possede l'option -r qui permet d'inverser le tri, cependant il effectue un tri alphanumerique en plus de l'inversion, ce que je ne veut pas, je veux juste inverser.

Or mon fichier est une log dont chaque ligne commence par "2006", je me demandait donc si il etat possible de restraindre le tri de la commande "sort" au premier caractère ("2"). Cependant l'option des clé ne permet pas de le permettre: il commence en effet par tri sur le caractere correspondant à la clé, mais il tri ensuite sur le reste.

Qqun a t'il une solution?
Configuration: Serveurs AIX  et Linux

3 réponses

  1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    si tu es sous AIX, la commande sort te permet de créer des clés disjointes...

    Ex :
    sort -t. -r -k3,3 -k2,2 -k 1,1
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu peux passer le résultat de sort dans un pipe |
    sort -r fichier | perl -ne ' print if /^2006/'
    lami20j
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    tac le_fichier
    ;-))
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      alors là, chapeau ;) Je ne connaissais pas cette commande.

      lami20j

      P.S. En revanche s'il veut que les lignes qui commence avec 2006...
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut lami20j,

      Chapeau à Adrien alors, c'est lui qui m'a enseigné cette commande dans un post. En plus elle est pas dure à se rappeler, c'est l'enverse de "cat" ;-))

      Et pour le "PS", pas de soucis, je cite :"Je voudrai lire un fichier à l'envers, de bas en haut. " ;-))
      0
    3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Re,

      Et pour le "PS", pas de soucis, je cite ....

      Oui, tu as raison, mais moi j'ai lu plus bas ;)
      Or mon fichier est une log dont chaque ligne commence par "2006", je me demandait donc si il etat possible de restraindre le tri de la commande "sort" au premier caractère ("2")

      lami20j

      P.S. Merci Adrien :-)
      0
    4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Oui mais il fallait lire plus haut aussi :
      La commande sort possede l'option -r qui permet d'inverser le tri, cependant il effectue un tri alphanumerique en plus de l'inversion, ce que je ne veut pas, je veux juste inverser.

      ;-))
      0
    5. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      C'est du pur Linux ? parce que sur mon AIX 5.2, je n'ai pas la commande...
      0