Rechercher : dans
Par :

Perl: recuperer 10 last lignes d'un fichier

Dernière réponse le 4 oct 2005 à 00:26:07 Emilie, le 1 oct 2005 à 17:01:32 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais savoir comment recuperer les 10 dernieres lignes d'un fichier en perl.
Faut il passer par un tableau donc tout charger ?

EMilie

Meilleures réponses pour « Perl: recuperer 10 last lignes d'un fichier » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
[Word] Récupérer un fichier impossible à ouvrir VoirCertains gros fichiers contenant des images généralement, se mettent parfois de façon "irrationnelle" à faire bloquer Word lorsqu'on veut les modifier. Pour les récupérer, il existe une méthode non-garantie : Ouvrir le fichier et l'enregistrer...

1

hssissen, le 3 oct 2005 à 22:29:28

Salut,
Ça depend de ce que tu veux faire avec!
Si tu comptes faire des traitemets particuliers donc tu peux les mettre dans une liste (liste est un vecteur d'objet en PERL, c'est un fourre tout!). Par exemple mettre chaque ligne lue dans un objet de la liste et faire les traitements voulus.
Pour lire les 10 dernieres lignes d'un texte a partir de PERL, tu peux utiliser la fonction system() qui permet de'executer des commandes shell par exemple dans un script PERL. Dans ton cas tu peux faire:
system("tail -10 ton_fichier").
J'espere que ca repond a ta question.

Répondre à hssissen

2

 lami20j, le 4 oct 2005 à 00:26:07

Salut,

et en utilisant que Perl (sans des commandes shell)

#! /usr/bin/perl -w

use strict;

open FIC, "ligne";
my @ligne = <FIC>;
my @ligne10 = (reverse @ligne)[0..9];
print reverse @ligne10;


Donc on lit le fichier dans un tableau qui on l'inverse, ensuite on prend une tranche de tableau ( les 10 ligne) en l'inverse de nouveau pour affichage.

Répondre à lami20j