sed +不能在solaris上工作

我在Solaris机器和Linux机器上运行以下sed语法

在Linux机器上sed做JOB它删除所有字符,直到第一个数字。

但是为什么这个sed语法在Solaris上不起作用?

我需要在sed语法中更改以便在Solaris上运行它?

solaris(sed – 不删除string,直到第一个数字?)

solaris:/ ROOT > echo "Release............5.3.7.1-12" | sed 's/[^0-9]\+//' Release............5.3.7.1-12 

在Linux上(我得到很好的结果)

  linux tmp]# echo "Linux Release............5.3.7.1-12" | sed 's/[^0-9]\+//' 5.3.7.1-12 

Solaris默认情况下通常没有GNU版本的任何东西。 这意味着您提供的选项和参数通常必须有所不同,才能像sed这样的实用程序获得相同的行为。

有时,根本不可能得到相同的行为,例如,除非已经安装了 sed 的GNU版本 ,否则sed -i将不能在Solaris上运行。

从内存来看,Solaris上的sed支持“基本”正则expression式集,并且不包含+修饰符。 你可以模拟一个+这样的:

 sed 's/[^0-9][^0-9]*//' 

或者你可以在这种情况下使用*

 sed 's/[^0-9]*//' 

Solaris通常还在/usr/ucb下安装了这些实用程序的BSD版本。 他们往往非常相似,但偶尔也会有重要的不同, 比如ps