现有日志文件:
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'
只是想知道是否有更好的方法来做到这一点?
最佳答案
$ awk -F'[.> (]|: ' '{print $1, $4, $6}' file
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
关于bash - 从日志文件中提取特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68693402/