作者makefriends (5 + 2 = life)
看板Linux
標題[問題] 監控串流並用awk及時打印出來
時間Mon Oct 12 00:54:55 2015
各位大大
小弟想對監控的串流訊息的每一行用awk加上時間戳後存成文字檔。
舉個例子:
ping -c 50 127.0.0.1 | awk '{ print strftime("%T",systime()),$0 } ' | tee test.txt
可是awk好像是把整段訊息處理完後,才一口氣全部打印出來,
可是我希望log還沒跑完的時後,就可以一邊從銀幕上看到,就像是讓awk可以每處理完一行後就馬上打印出。
請問個位大大,有這個可能做到嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.106.65
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1444582497.A.950.html
1F:推 OSDBNetwork: strftime("%T",systime()),$0 | "tee test.txt" }' 10/12 03:11
以原文為例子,你的意思是
ping -c 50 127.0.0.1 | awk '{ print strftime("%T",systime()),$0 | "tee test.txt"}'
這樣嗎?不過對於STDIN還是使用awk處理,結果會是會是50次都ping完後才把結果跟時間戳打印出來
我是希望可以每ping一次就馬上加上時間戳並打印出來
2F:推 wulawu: moreutils ts 拿來加時間比較快 10/12 08:11
不好意思,google查到moreutils ts的例子好少,如果可以的話,可以舉個例子說明一下嗎?
那麼moreutils顯示出的時間格是又是哪種呢?可以設定格式嗎?
※ 編輯: makefriends (220.134.106.64), 10/12/2015 23:41:21
3F:→ OSDBNetwork: 我的Linux會"每ping一次就馬上加上時間戳並打印出來" 10/12 23:54
4F:→ OSDBNetwork: 我是用gedit打開來看,關閉再打開,每次都會顯示不同. 10/12 23:57
5F:→ OSDBNetwork: 在 ping 50次 內 10/12 23:57
6F:→ OSDBNetwork: 請問你用甚麼工具看 test.txt ? 10/12 23:59
我明天到公司在試試看一次,感謝你的熱情提供^ ^,不過這方式是不是STDOUT不會即時顯示呢?
※ 編輯: makefriends (220.134.106.64), 10/13/2015 00:53:17
※ 編輯: makefriends (220.134.106.64), 10/13/2015 00:58:40
7F:→ OSDBNetwork: 會即時顯示在 終端機 10/13 01:18