如何在 zgrep/zcat 命令中指定正则表达式?



我想在单词列表中找到每个单词,其中至少有 3 次相同的字母。为了实现这一点,我做了.*(w).*1.*1.*1.*,你可以在这里测试它 http://www.regexplanet.com/advanced/java/index.html 但我不知道如何把它放在我的zgrep命令中。

如何在zgrep命令中插入此正则表达式?

几点注意事项:

  • 您不需要将行的开头和结尾与.*匹配,因为允许部分匹配
  • w匹配 NFA 正则表达式模式中的字母、数字和下划线,但在 POSIX 中,使用[[:alnum:]_]更安全
  • 要在 POSIX BRE 模式中形成捕获组,请使用转义括号,(...).

因此,使用

zgrep '([[:alnum:]_]).*1.*1.*1' a.gz

或者,收缩一点,因为它看起来有点多余,有三个连续的.*1子模式:

zgrep '([[:alnum:]_])(.*1){3}' a.gz

相关内容

  • 没有找到相关文章

最新更新