gpt4 book ai didi

regex - 如何 grep 和过滤日期和特定字段的日志

转载 作者:行者123 更新时间:2023-12-01 09:07:22 25 4
gpt4 key购买 nike

我的日志将包含以下格式的一些行

test/blah.log.32:30141:2019-08-12 16:40:09,839 com.test.service.testService [P1-7XX8] INFO testMethod(): userId: 12345XX, someOtherId: 12345XXXCCCDDD , blah, blah...., _someType=V, blah, blah, blah....

我如何 grep 查找包含文本 _someType=V 的数据,然后从中过滤日期和 userId。我的最终结果应该是

2019-08-12 16:40:09,839-12345XX

我可以使用 grep -Hn '_someType=V' 进行 grep,但无法过滤数据。

最佳答案

您可以将 grep 命令的输出通过管道传输到 sed 以将整行转换为两个相关数据:

grep '_someType=V' | sed -E 's/^([^ ]* [^ ]*).*userId: ([^ ]*).*/\1-\2/'

sed s替换命令将与日期对应的行的前两个“词”捕获到第一个捕获组中,然后是 userId 之后的词 进入第二个,匹配整行以用破折号分隔的两个捕获组的内容替换它。

如果 _someType=VuserId 之间的顺序始终相同,您可以不使用 grep,例如如果 _someType=V 总是出现在 userId 之后:

sed -nE 's/^([^ ]* [^ ]*).*userId: ([^ ]*).*_someType=V.*/\1-\2/p'

关于regex - 如何 grep 和过滤日期和特定字段的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com