正则表达式无法在 SunOS 上使用 {M,N} 进行匹配

regex failed to match using {M,N} on SunOS

我有以下示例文件和正则表达式。

testing.txt

testing                  aa
a bc de
e                        aa
ba                        Z
testing                  bb
testing                  ac

我使用 egrep 的正则表达式

egrep '[ ]{2,}' testing.txt

上面的正则表达式试图在一行中找到连续的空格。 但是,返回的结果是空的。

下面的正则表达式适用于 1 个或多个空格。然而这不是我想要的。

egrep '[ ]+' testing.txt

如果您的系统较旧,this help reference 可能描述了问题:

Traditional egrep did not support the { metacharacter, and some egrep implementations support \{ instead, so portable scripts should avoid { in egrep patterns and should use [{] to match a literal {.

这意味着 - 如果 grep '[ ]\{2,\}' testing.txt 不起作用 - 你最好使用 Perl 或 GNU grep 来实现你想要的。

此外,egrep '[ ][ ]+' testing.txt似乎只是在当前情况下的解决方法,不会扩展,但暂时肯定会对您有所帮助。