【发布时间】:2019-09-10 15:19:12
【问题描述】:
我的日志会有一些格式如下的行
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 的数据,然后从中过滤日期和用户 ID。我的最终结果应该是
2019-08-12 16:40:09,839-12345XX
我可以使用 grep -Hn '_someType=V' 进行 grep,但无法过滤数据。
【问题讨论】:
-
文件文本以
30141:或test/blah.log.32:开头? -
@anubhava 最有可能使用
2019-08-12 16:40:09,839 com.test...:test/blah.log.32是文件名,30141是行号,分别由grep的-H和-n输出跨度> -
将多个 grep 链接在一起?
grep '_someType=V file | grep 2019-09-10' | grep userID?使用-o选项将输出限制为您的搜索目标。 -
@shellter 如果 OP 想要检索的两条数据是连续的,那将起作用。由于它们不是你不能用
-o选择它们,你必须使用sed来删除两条数据之间的内容 -
@Aaron :我正在将示例日志数据作为一条连续线读取。但是......太糟糕了,数据没有更好地呈现,因此解释上没有差异。但我喜欢以下两种解决方案,并希望它们对 O.P. 有用。祝大家好运。