Lecture d'un fichier en temps réel

Fermé
Alteo - 16 oct. 2007 à 19:15
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 17 oct. 2007 à 12:17
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 !!
A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
17 oct. 2007 à 12:17
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
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