ฉันพยายามที่จะดูว่ามีกี่ครั้งที่foo bar
ปรากฏขึ้น/var/log/foo.log
ภายในระยะเวลาโดยพลการบนเซิร์ฟเวอร์ระยะไกล แต่ไม่มีอะไรที่ฉันได้ลองมาแล้ว
ฉันมีสคริปต์ตัวจับเวลาแล้วที่ฉันใช้เพื่อติดตามว่ามันได้รับมานานแค่ไหนตั้งแต่ฉันเริ่ม tailing /var/log/foo.log
และตอนนี้ฉันก็อยากจะบอกว่ากี่ครั้งที่foo bar
ปรากฏในเอาท์พุทเทลด์
ฉันค้นหา google แต่ฉันไม่พบสิ่งใดที่เกี่ยวข้องภายใน 10 หน้าแรกของผลลัพธ์
นี่คือสิ่งที่ฉันได้ลองด้วยผลลัพธ์ที่น่าผิดหวัง:
## 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}'
ฉันยังพยายามที่จะเขียนบทสคริปที่จะทำหน้าที่เหมือนtail -f
แต่ฉันไม่ได้ทำอะไรแบบนั้น
บันทึก
รีโมตเซิร์ฟเวอร์กำลังรัน coreutils เวอร์ชันเก่ากว่าและการอัพเกรดเป็นตัวเลือก แต่ไม่ได้เป็นวิธีการแก้ปัญหาที่ต้องการ
--line-buffered
grep
หรือtail -f ... | awk '/foo bar/{print ++n, $0}'