awk 和 WinGrep 中的正则表达式

发布于 2024-07-09 11:34:35 字数 297 浏览 8 评论 0原文

所以我正在寻找这样的模式:

尺寸='0x0'

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

size='0x[0-9a-fA-F]{4,}

但是相同的正则表达式在 awk 中不起作用 - 似乎重复 {4,} 搞砸了。 与 WinGrep 相同 - RegEx 专家有什么想法吗? 谢谢!

So I'm looking for a pattern like this:

size='0x0'

In a log file, but I'm only interested in large sizes (4 digits or more). The following regex works great in EditPadPro (nice tool BTW)

size='0x[0-9a-fA-F]{4,}

But the same RegEx does not work in awk - seems like the repetition {4,} is messing it up. Same with WinGrep - any idea from the RegEx gurus? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

極樂鬼 2024-07-16 11:34:35

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

如下页所述,您需要一个特殊的命令行选项 (--re-interval) 才能使其正常工作,因为间隔表达式 ({4,}) 不在标准中:

http://kansai.anesth.or.jp/gijutu/awk/gawk/gawk_28.html< /a>

所以最后,你会想要看起来像这样的东西:

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

这将打印出匹配的行。

You can in fact use awk, with a caveat.

As mentioned on the following page, you need a special command-line option (--re-interval) to make it work out, since the interval expression (the {4,}) is not in the standard:

http://kansai.anesth.or.jp/gijutu/awk/gawk/gawk_28.html

So in the end, you'll want something that looks like:

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

This will print out the lines that match.

携君以终年 2024-07-16 11:34:35

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

size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+

希望这有帮助!

亚当

I don't know of any elegant alternatives to the {4,} syntax, but if it is not working in your desired environment you could resort to this ugly hack:

size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+

Hope this helps!

Adam

老子叫无熙 2024-07-16 11:34:35

不要忘记最后一个撇号。

'

Don't forget the last apostrophe.

'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文