J'essaie de voir combien de fois foo bar
apparaît /var/log/foo.log
dans un laps de temps arbitraire sur un serveur distant, mais rien de ce que j'ai essayé jusqu'à présent n'a fonctionné.
J'ai déjà un script de minuterie que j'utilise pour garder une trace de combien de temps il s'est écoulé depuis que j'ai commencé la queue /var/log/foo.log
, et maintenant je voudrais juste un moyen de dire combien de fois foo bar
est apparu dans la sortie queue.
J'ai cherché sur Google, mais je n'ai rien trouvé de pertinent dans les 10 premières pages de résultats.
Voici ce que j'ai essayé avec des résultats frustrants:
## works on local machine, but doesn't work as expected on remote
tail -f /var/log/foo.log | grep foo\ bar | sed '='
## works on local, but not remote
tail -f /var/log/foo.log | grep foo\ bar | cat -n -
## works on local, but not remote
tail -f /var/log/foo.log | grep foo\ bar | awk -F'\n' '{printf "[%d]> ", NR; print $1}'
J'ai même essayé d'écrire un script sed qui agirait comme ça tail -f
, mais j'ai fait des progrès limités voire nuls avec cela.
REMARQUE
le serveur distant exécute une ancienne version de coreutils, et la mise à niveau est une option, mais pas en aucune façon la solution désirée.
--line-buffered
option pourgrep
. Outail -f ... | awk '/foo bar/{print ++n, $0}'