Uzak bir sunucuda rastgele bir süre içinde kaç kez foo bar
göründüğünü görmeye çalışıyorum /var/log/foo.log
, ancak şimdiye kadar denediğim hiçbir şey işe yaramadı.
Zaten tailing başladığımdan beri ne kadar zaman geçtiğini takip etmek için kullandığım bir zamanlayıcı betiğim var /var/log/foo.log
ve şimdi foo bar
kuyruklu çıktıda kaç kez göründüğünü söylemenin bir yolunu istiyorum .
Google’ı aradım, ancak sonuçların ilk 10 sayfasında uygun bir şey bulamadım.
İşte sinir bozucu sonuçları ile denedim:
## 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}'
Öyle davranacak başlı bir senaryo yazmayı bile denedim tail -f
, ama bununla sınırlı kaldım.
NOT
uzak sunucu, coreutils'in daha eski bir sürümünü çalıştırıyor ve yükseltme bir seçenektir, ancak istenen herhangi bir şekilde DEĞİLDİR .
--line-buffered
Seçeneğini deneyingrep
. Veyatail -f ... | awk '/foo bar/{print ++n, $0}'