首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从多行获取grep信息?

如何从多行获取grep信息?
EN

Unix & Linux用户
提问于 2019-02-14 10:20:46
回答 2查看 12.7K关注 0票数 2

我有一个日志文件,其中包含以下数据:

代码语言:javascript
复制
2019-02-11 00:05:58.241 [exec-178] Start request
2019-02-11 00:05:58.242 [exec-178] customer_name
2019-02-11 00:05:58.243 [exec-178] other process
2019-02-11 00:05:58.244 [exec-178] other process
2019-02-11 00:05:58.245 [exec-178] results
2019-02-11 00:05:58.246 [exec-178] End request (13ms)

我想使用一个grep命令来捕获'customer_name‘和'End请求’。我一直在尝试使用grep -E "[0-9]{2,4}ms,但它没有提供预期的输出。

预期产出:

代码语言:javascript
复制
2019-02-11 00:05:58.242 [exec-178] customer_name 
2019-02-11 00:05:58.246 [exec-178] End request (13ms)
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-02-14 11:15:12

这是有可能的grep -E和模式,您的grep是由一个管道标志。

代码语言:javascript
复制
[root@server ~]# grep -Ei "customer_name|end request" file 
2019-02-11 00:05:58.242 [exec-178] customer_name
2019-02-11 00:05:58.246 [exec-178] End request (13ms)
[root@server ~]# 

man grep中提取:

-E,- extended将模式解释为扩展正则表达式(ERE,见下文)。-i,--忽略--忽略模式和输入文件中的大小写区分。

票数 1
EN

Unix & Linux用户

发布于 2019-02-14 10:42:13

如果您只希望它返回位于不同行上的确切字符串:

代码语言:javascript
复制
egrep -o "customer_name|End request" logfile

输出:

代码语言:javascript
复制
customer_name
End request

如果您希望它返回整行:

代码语言:javascript
复制
egrep "customer_name|End request" logfile

输出

代码语言:javascript
复制
2019-02-11 00:05:58.242 [exec-178] customer_name
2019-02-11 00:05:58.246 [exec-178] End request (13ms)
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/500589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档