作者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/cn.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