【发布时间】:2021-10-12 01:05:58
【问题描述】:
现有日志文件:
00:00:00.035790 0x7ff488dfa700>INFO: Session(ABC_BETA -1): 0.000494 Type Info
00:24:00.035799 0x7ff488dfa700>DEBUG: Session(ABC_BETA -1): 1.000000 Type Debug
01:02:00.035801 0x7ff488dfa700>INFO: Session(2NDStage -1): 0.000133 Type Info
21:00:00.035803 0x7ff488dfa700>INFO: Session(jOHN -1): 0.000140 Type Info
23:59:00.035805 0x7ff488dfa700>INFO: Session(NIRVANA -1): 0.003880 Type Info
预期结果:
00:00:00 INFO ABC_BETA
00:24:00 DEBUG ABC_BETA
01:02:00 INFO 2NDStage
21:00:00 INFO jOHN
23:59:00 INFO NIRVANA
我能够使用 sed 的组合提取它,如下所示:
sed 's/[\.\>\)\( \]/{/g'<testfile.log|cut -d "{" -f 1,4,6|sed 's/{/ /g'|sed 's/: / /g'
只是想知道是否有更好的方法来做到这一点?
【问题讨论】:
-
不需要的部分用一个空格代替:
sed 's/\..*>/ /; s/: .*(/ /; s/ -1).*//' file