看板 Linux 關於我們 聯絡資訊
各位大大 小弟想對監控的串流訊息的每一行用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
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一次就馬上加上時間戳並打印出來
wulawu: moreutils ts 拿來加時間比較快 10/12 08:11
不好意思,google查到moreutils ts的例子好少,如果可以的話,可以舉個例子說明一下嗎? 那麼moreutils顯示出的時間格是又是哪種呢?可以設定格式嗎? ※ 編輯: makefriends (220.134.106.64), 10/12/2015 23:41:21
OSDBNetwork: 我的Linux會"每ping一次就馬上加上時間戳並打印出來" 10/12 23:54
OSDBNetwork: 我是用gedit打開來看,關閉再打開,每次都會顯示不同. 10/12 23:57
OSDBNetwork: 在 ping 50次 內 10/12 23:57
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
OSDBNetwork: 會即時顯示在 終端機 10/13 01:18