Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

liseur de log qui sait ou s'est-il arret

2 réponses
Avatar
Mihamina Rakotomandimby
Bonjour,

J'ai besoin de lire "quand je veux" de longs logs.
Mais je ne souhaite pas relire les lignes que j'ai deja lu.

Existe-il un truc qui marque la derniere ligne qu'il a lu d'un fichier,
et que quand je le reinvoque sur ce fichier ne me montre que les lignes
qui ont été ajoutées apres ma précédente lecture?


--
Architecte Informatique chez Blueline/Gulfsat:
Administration Systeme, Recherche & Developpement
+261 34 29 155 34 / +261 33 11 207 36

2 réponses

Avatar
Lucas Levrel
Le 4 mai 2010, Mihamina Rakotomandimby a écrit :

J'ai besoin de lire "quand je veux" de longs logs.
Mais je ne souhaite pas relire les lignes que j'ai deja lu.

Existe-il un truc qui marque la derniere ligne qu'il a lu d'un fichier,
et que quand je le reinvoque sur ce fichier ne me montre que les lignes
qui ont été ajoutées apres ma précédente lecture?



C'est pas tout à fait ce que tu demandes, mais vim se rappelle où était le
curseur quand tu rouvres un fichier.

--
LL
Avatar
Cyrille Lefevre
Le 04/05/2010 07:54, Mihamina Rakotomandimby a écrit :
Bonjour,

J'ai besoin de lire "quand je veux" de longs logs.
Mais je ne souhaite pas relire les lignes que j'ai deja lu.

Existe-il un truc qui marque la derniere ligne qu'il a lu d'un fichier,
et que quand je le reinvoque sur ce fichier ne me montre que les lignes
qui ont été ajoutées apres ma précédente lectu re?





Bonjour,

la réponse qui fonctionne partout...
fonctionne également si le fichier a été réinitialisà ©, enfin, sauf si
le nouveau fichier est plus grand que l'ancien...
au besoin, décommenter les lignes précédées d'un #

log=log
last=${log}.last

if [ -f "${last}" ]; then
oldpos=$(cat "${last}")
oldpos=$(( ${oldpos} + 1 ))
# newer=$(find "${log}" -newer "${last}")
wc -l < "${log}" > "${last}"
# if [ -n "${newer}" ]; then
# oldpos=0
# else
newpos=$(cat "${last}")
newpos=$(( ${newpos} + 1 ))
diff=$(( ${newpos} - ${oldpos} ))
case ${diff} in
0) exit ;;
-*) oldpos=0 ;;
esac
# fi
else
oldpos=0
fi

tail -n +${oldpos} "${log}"


Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.