Lecture d'un fichier en temps réel

Alteo -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'aimerais écrire en Shell un petit script pour récupérer le contenu d'un fichier. Attention, détail ultime : il s'agit de le faire en temps réel.
Autrement dit, le script, une fois lancé, lit le fichier, récupère son contenu dans un autre fichier, et quand il arrive à la fin du fichier lu, il attends de voir si d'autres lignes ne sont pas ajoutées, et si tel est le cas, il les lit et les ajoute à son fichier de sortie.
La fin du script se déclenche par Ctrl-C.
L'ennui, c'est que je suis loin d'être un expert en Shell Unix... :(
Quelqu'un pour m'aider ?
Je suis sous HP PA-RISC.
Merci infiniment !!
Configuration: HP PA-RISC

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    la commande tail -f est faite pour ça

    -f Follow option. If the input file is a regular
    file or if file specifies a FIFO, do not terminate
    after the last line of the input file has been
    copied, but read and copy further bytes from the
    input file when they become available (tail enters
    an endless loop wherein it sleeps for one second
    then attempts to read and copy further records
    from the input file). This is useful when
    monitoring text being written to a file by another
    process. If no file argument is specified and the
    input is a pipe (FIFO), the -f option is ignored.
    5
  2. akira
     
    Bonjour,

    Pour le faire en shell voila comment je ferais ( c'est peut etre pas exact mais ca peut ouvrir des pistes...)

    -lecture du fichier jusqu'a la fin + recopie
    -fermeture du fichier
    faire une boucle "tant que" en faisant un "diff" entre le fichier sauvegarde et le fichier à lire
    si il y a un resulat dans le diff alors on le met de le fichier de sauvegarde.
    Et on recommence...

    Une autre solution serait difficile à mettre en oeuvre car la ressource est dupliquée en cas d'accès concurentiel.

    De plus, j'ajouterais que le temps réel est souvent mal employé, car on définit un systeme temps réel comme étant un système dans lequel l'information, après acquisition et traitement, reste pertinente. Donc rien à voir dans ce cas.

    en esperant avoir éclairé une lanterne,

    Cordialement,

    :)
    0