Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows awk和WinGrep中的正则表达式_Windows_Regex_Awk_Grep - Fatal编程技术网

Windows awk和WinGrep中的正则表达式

Windows awk和WinGrep中的正则表达式,windows,regex,awk,grep,Windows,Regex,Awk,Grep,所以我在寻找这样一种模式: size='0x0' 在日志文件中,但我只对大尺寸(4位或更多)感兴趣。下面的正则表达式在EditPadPro中非常有效(顺便说一句,很好的工具) 但是同一个正则表达式在awk中不起作用-似乎重复{4,}把它搞砸了。WinGrep也一样-RegEx大师有什么想法吗?谢谢 我不知道有什么优雅的{4,}语法替代品,但是如果它在您想要的环境中不起作用,您可以求助于这个丑陋的黑客: size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-

所以我在寻找这样一种模式:

size='0x0'

在日志文件中,但我只对大尺寸(4位或更多)感兴趣。下面的正则表达式在EditPadPro中非常有效(顺便说一句,很好的工具)


但是同一个正则表达式在awk中不起作用-似乎重复
{4,}
把它搞砸了。WinGrep也一样-RegEx大师有什么想法吗?谢谢

我不知道有什么优雅的{4,}语法替代品,但是如果它在您想要的环境中不起作用,您可以求助于这个丑陋的黑客:

size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+
希望这有帮助


亚当别忘了最后一个撇号

'

事实上,您可以使用awk,但需要注意

正如在下一页中提到的,您需要一个特殊的命令行选项(--re interval)来解决这个问题,因为区间表达式({4,})不在标准中:

所以最后,你会想要一些看起来像:

awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile

这将打印出匹配的行。

好-丑的黑客工作得很好,这才是最重要的,对吗?对我来说,最好的事情是学习一个新工具,而不是编写另一个C应用程序!如果@adamalex-answer有效,您应该将其标记为正确,既为了他的利益,也为了下一个需要回答此问题的人。您可以使用PowerGREP而不是WinGrep,因此您将使用与EditPad Pro完全相同的正则表达式引擎。这不是“awk”;这是GNU的“gawk”,它不是唯一的版本。话虽如此,在Windows上,“awk”很可能来自GNU,特别是因为它是公认的答案,但这不是自动的(我相信MKS有一个awk版本)。考虑到GNU实用程序的普遍性,我认为这至少是一个好的起点。既然成功了,看来我的假设是对的
awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile