Regex 正则表达式在SunOS上使用{M,N}进行匹配失败

Regex 正则表达式在SunOS上使用{M,N}进行匹配失败,regex,grep,sunos,Regex,Grep,Sunos,我有以下示例文件和正则表达式 testing.txt testing aa a bc de e aa ba Z testing bb testing ac 我的正则表达式使用egrep egrep '[ ]{2,}' testing.txt 上面的正则表达式尝试在一行中查找连续的空格。 但是,返回的结

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

testing.txt

testing                  aa
a bc de
e                        aa
ba                        Z
testing                  bb
testing                  ac
我的正则表达式使用egrep

egrep '[ ]{2,}' testing.txt
上面的正则表达式尝试在一行中查找连续的空格。 但是,返回的结果为空

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

egrep '[ ]+' testing.txt
如果您的系统是旧的,则可能正在描述此问题:

传统的egrep不支持
{
元字符
,而一些egrep实现支持
{
,因此可移植脚本应该避免在egrep模式中使用
{
,并且应该使用
[{]
来匹配文本
{

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

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

如果您的系统是旧的,则可能会描述此问题:

传统的egrep不支持
{
元字符
,而一些egrep实现支持
{
,因此可移植脚本应该避免在egrep模式中使用
{
,并且应该使用
[{]
来匹配文本
{

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


另外,
egrep'[]+'testing.txt似乎只是当前情况下的一种变通方法,它不会扩展,但目前肯定会对您有所帮助。

您使用的是哪个版本的egrep?
egrep--version
是否有空格?请尝试在括号表达式中添加一个制表符。@Mox:可能尝试
[][]+
\s\s+
括号表达式中的反斜杠被视为文字反斜杠。
[\t]
匹配
\
t
。使用括号表达式中的文字选项卡,它不是字符类。另一件事是,在BRE regex中,需要转义括号
\{n,m\}
,您不需要这样做。不知道egrep支持什么确切的风格。我最终总是在Sun系统上使用Perl,这更为一致。您使用的是哪个版本的egrep?
egrep--version
是否有空格?尝试在括号表达式中添加一个制表符。@Mox:可能尝试
[]+
\s\s+
括号表达式中的反斜杠被视为文字反斜杠。
[\t]
匹配
\
t
。使用括号表达式中的文字选项卡,它不是字符类。另一件事是,在BRE regex中,需要转义括号
\{n,m\}
,你不需要这样。不知道egrep支持什么口味。我最终总是在Sun系统上使用Perl-它更一致。很遗憾,这是该公司的服务器哈哈,所以我没有升级的能力…很遗憾,这是该公司的服务器哈哈,所以我没有升级的能力。。。