Ksh: inverser un fichier pour le lire à l'envers
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Ksh: inverser un fichier pour le lire à l'envers



  1. #1
    inviteab38039d

    Ksh: inverser un fichier pour le lire à l'envers


    ------

    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?

    Je me permets de te signaler qu'il existe une charte du forum. Elle dit :

    La courtoisie est de rigueur sur ce forum : pour une demande de renseignements bonjour et merci devraient être des automatismes.
    JPL, modérateur

    -----
    Dernière modification par JPL ; 26/09/2006 à 13h59.

  2. #2
    invite24357dd0

    Re : Ksh: inverser un fichier pour le lire à l'envers

    Ce n'est pas en Ksh mais si tu as un interprêteur Python à ta disposition, voici le code pour inverser ton fichier et l'afficher :
    Code:
    f = open('fichier.txt', 'r')
    tout = f.readlines()
    f.close()
    tout.reverse()
    print tout
    Si, en plus, tu veux que Python écrive le tout dans un fichier, tu ajoutes :
    Code:
    t = open('renverse.txt', 'w')
    for line in tout:
         t.write(line)
    t.close()

  3. #3
    invite597d4991

    Re : Ksh: inverser un fichier pour le lire à l'envers

    Sauf que dans ton premier code, l'affichage va ressembler à:
    ["Salut!\n","Bonjour\n"]

    ... c'est à dire la chaine sortant de la méthode __str__ de `tout`...

  4. #4
    invite24357dd0

    Re : Ksh: inverser un fichier pour le lire à l'envers

    D'accord, le "print tout" était juste là pour montrer que l'ordre des lignes était bien inversé : je pensais que, de toutes façons, le but étant d'obtenir le fichier avec les lignes inversé (pour traitement ultérieur) et pas nécessairement l'affichage. Si c'est l'affichage correct qu'il faut, le code change vraiment peu:
    Code:
    f = open('fichier.txt', 'r')
    tout = f.readlines()
    f.close()
    tout.reverse()
    for line in tout:
    	print line[0:len(line)-1]

  5. A voir en vidéo sur Futura
  6. #5
    invite597d4991

    Re : Ksh: inverser un fichier pour le lire à l'envers

    Disons que si le but est de créer un miniscript pour quelqu'un qui ne connait pas forcément python, autant donner tout de suite du code utilisable.
    (imagine le pauvre si il doit éditer son script à chaque utilisation...)
    Tu aurais même pu faire un effort:
    Code:
    #!/usr/bin/python
    
    import sys
    
    Data = sys.stdin.readlines()
    Data.reverse()
    for line in Data:
     print line
    Lire depuis stdin permet de laisser la gestion des IO fichiers au shell, ce qui est bien pratique.

Discussions similaires

  1. lire un fichier avec Matlab
    Par inviteb43c2c20 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 22/12/2013, 13h36
  2. Aide pour lire un fichier
    Par invitea82799f5 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 09/07/2007, 12h49
  3. lire un fichier en Matlab
    Par invitef03e0ed1 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 19/06/2006, 20h31
  4. [ksh] lire reellement les lignes d un fichier
    Par inviteab38039d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 25/07/2005, 12h06
  5. comment lire les fichier ps
    Par invitefc33073c dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 20/07/2005, 00h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...