[問題] 監控串流並用awk及時打印出來

看板Linux作者 (5 + 2 = life)時間8年前 (2015/10/12 00:54), 8年前編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/2 (看更多)
各位大大 小弟想對監控的串流訊息的每一行用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://www.ptt.cc/bbs/Linux/M.1444582497.A.950.html

10/12 03:11, , 1F
strftime("%T",systime()),$0 | "tee test.txt" }'
10/12 03:11, 1F
以原文為例子,你的意思是 ping -c 50 127.0.0.1 | awk '{ print strftime("%T",systime()),$0 | "tee test.txt"}' 這樣嗎?不過對於STDIN還是使用awk處理,結果會是會是50次都ping完後才把結果跟時間戳打印出來 我是希望可以每ping一次就馬上加上時間戳並打印出來

10/12 08:11, , 2F
moreutils ts 拿來加時間比較快
10/12 08:11, 2F
不好意思,google查到moreutils ts的例子好少,如果可以的話,可以舉個例子說明一下嗎? 那麼moreutils顯示出的時間格是又是哪種呢?可以設定格式嗎? ※ 編輯: makefriends (220.134.106.64), 10/12/2015 23:41:21

10/12 23:54, , 3F
我的Linux會"每ping一次就馬上加上時間戳並打印出來"
10/12 23:54, 3F

10/12 23:57, , 4F
我是用gedit打開來看,關閉再打開,每次都會顯示不同.
10/12 23:57, 4F

10/12 23:57, , 5F
在 ping 50次 內
10/12 23:57, 5F

10/12 23:59, , 6F
請問你用甚麼工具看 test.txt ?
10/12 23:59, 6F
我明天到公司在試試看一次,感謝你的熱情提供^ ^,不過這方式是不是STDOUT不會即時顯示呢? ※ 編輯: makefriends (220.134.106.64), 10/13/2015 00:53:17 ※ 編輯: makefriends (220.134.106.64), 10/13/2015 00:58:40

10/13 01:18, , 7F
會即時顯示在 終端機
10/13 01:18, 7F
文章代碼(AID): #1M6fHXbG (Linux)
文章代碼(AID): #1M6fHXbG (Linux)