首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用正则表达式击打

用正则表达式击打
EN

Stack Overflow用户
提问于 2016-04-18 19:39:13
回答 5查看 45关注 0票数 1

我有一个包含GC内容的文件,比如Total time for which application threads were stopped: 0.0017830 seconds, Stopping threads took: 0.0002897 seconds和更多类似的行。为了解决疑难问题,我需要提取stopped:超过1.x秒的行。

我确实尝试过使用grep 'stopped[: 1-9]*',但我对regex的使用不是很精通。你能帮帮我吗。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-04-18 19:45:22

简单地将时间较短的排除掉难道不是更容易吗?

代码语言:javascript
复制
grep 'stopped: ' | grep -v 'stopped: 0'
票数 3
EN

Stack Overflow用户

发布于 2016-04-18 19:43:23

试一试

代码语言:javascript
复制
 grep -E 'stopped: ([1-9]\.|[0-9]{2}\.)' file

也能抓到10。

或者,最好将公共元素分解出来,允许更多的数字大于2。

代码语言:javascript
复制
 grep -E 'stopped: ([1-9]|[0-9]{2,})\.' file
票数 2
EN

Stack Overflow用户

发布于 2016-04-18 19:44:50

我建议在这项工作中使用egrep,这为您提供了更多的regex选项。

下面是适合用例的正则表达式的起点:

代码语言:javascript
复制
egrep "stopped: [0-9]+" data.txt

这将返回包含stopped:的任何行,后面至少有一个数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36702910

复制
相关文章

相似问题

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