我想在日志文件上使用 egrep,它只会输出我匹配组。
我在日志文件中有这样的内容:
queued as 6B6A72A7896 sent 00100000000000000 0 2019 Apr 7 00:37:39
使用 PCRE 正则表达式,我匹配了重要信息。
(?P<"id>"(queued as [A-Z-0-9]{11}))+.+?(?<"div>"([0-9]{4}\s[A-Za-z]{3}.+?[\d]{2}:[\d]{2}:[\d]{2}))
看这里:https://regex101.com/r/L1l396/1
我怎样才能仅输出组ID和组DIV?
答案1
使用 sed 的解决方案
变化:
- 在 id 部分:
+.+?
->.*
- 在日期部分:
.+?
->.*
示例输入的输出:
$ sed -n 's/.*\(queued as [A-Z0-9-]\{11\}\).*\([0-9]\{4\}\s[A-Za-z]\{3\}.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\).*/id:\1 div:\2/p' file
id:queued as 6B6A72A7896 div:2019 Apr 7 00:37:37
id:queued as 25E642A7896 div:2019 Apr 7 02:12:02
id:queued as B4CCE2A7896 div:2019 Apr 7 02:26:49
id:queued as 247A22A7896 div:2019 Apr 7 02:28:25
也许这对你有用?