我有一个包含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的使用不是很精通。你能帮帮我吗。
谢谢。
发布于 2016-04-18 19:45:22
简单地将时间较短的排除掉难道不是更容易吗?
grep 'stopped: ' | grep -v 'stopped: 0'发布于 2016-04-18 19:43:23
试一试
grep -E 'stopped: ([1-9]\.|[0-9]{2}\.)' file也能抓到10。
或者,最好将公共元素分解出来,允许更多的数字大于2。
grep -E 'stopped: ([1-9]|[0-9]{2,})\.' file发布于 2016-04-18 19:44:50
我建议在这项工作中使用egrep,这为您提供了更多的regex选项。
下面是适合用例的正则表达式的起点:
egrep "stopped: [0-9]+" data.txt这将返回包含stopped:的任何行,后面至少有一个数字。
https://stackoverflow.com/questions/36702910
复制相似问题