我在 var/log/messages.log
中有如下数据,现在我需要搜索 WAM 数据行并仅提取部分时间戳
例如
2013-07-09T02:22:28.535639Z [24] user.info WebAppMgr WAM APPLAUNCH_INITIATED
上面一行包含WAM
,我只需要22:28.535639Z
messages.log中的数据
2013-07-09T02:22:28.535639Z [24] user.info WebAppMgr WAM APPLAUNCH_INITIATED
2013-07-09T02:22:21.817372Z [17] user.info sam SAM ^Icom.palm.app.calculator
2013-07-09T02:22:21.818442Z [17] user.info sam SAM ^Icom.palm.app.settings
2013-07-09T02:24:04.738067Z [120] user.info WebAppMgr WAM APPLAUNCH_INITIATED
2013-07-09T02:22:21.846636Z [17] user.info sam SAM ^Icom.palm.app.notes
2013-07-09T02:22:21.851727Z [17] user.info sam SAM ^Icom.palm.app.firstuse
2013-07-09T02:22:21.854172Z [17] user.info sam SAM ^Icom.palm.app.isis2
2013-07-09T02:22:21.863786Z [17] user.info sam SAM ^Icom.palm.sysapp.voicedial
2013-07-09T02:24:04.746751Z [120] user.info WebAppMgr WAM APP CREATED WINDOW
我能够提取 2013-07-09T02:22:28.535639Z
。我需要知道如何提取 22:28.535639Z
#! /bin/sh
awk '/\ WAM/ {print $1"\t"}' /home/santosh/messages
我得到这样的输出
2013-07-09T02:22:28.535639Z
2013-07-09T02:24:04.738067Z
2013-07-09T02:24:04.746751Z
但我只需要下面的数据
22:28.535639Z
24:04.738067Z
24:04.746751Z
最佳答案
您可以在当前的 awk 调用中执行此操作:
awk '/\<WAM\>/ {split($1, a, ":"); print a[2] ":" a[3]}' file
\<
和 \>
是词边界断言。
关于linux - 提取 message.log 文件中部分时间戳的 Shell 脚本程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553975/