Sto cercando di vedere quante volte foo bar
appare /var/log/foo.log
entro un tempo arbitrario su un server remoto, ma nulla di ciò che ho provato finora ha funzionato.
Ho già uno script timer che uso per tenere traccia di quanto tempo è passato da quando ho iniziato a fare la coda /var/log/foo.log
, e ora vorrei solo un modo per dire quante volte foo bar
è apparso nell'output della coda.
Ho cercato su Google, ma non ho trovato nulla di pertinente nelle prime 10 pagine di risultati.
Ecco cosa ho provato con risultati frustranti:
## 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}'
Ho anche provato a scrivere una sceneggiatura di sed che avrebbe funzionato in questo modo tail -f
, ma ho fatto progressi limitati a niente.
NOTA
il server remoto esegue una versione precedente di coreutils e l'aggiornamento è un'opzione, ma NON è in alcun modo la soluzione desiderata.
--line-buffered
opzione agrep
. Oppuretail -f ... | awk '/foo bar/{print ++n, $0}'