【发布时间】:2012-02-16 10:12:57
【问题描述】:
以下 grep 命令的目标是匹配带有“.”的数字(参见可以匹配的 PARAM 和不应该匹配的 PARAM 的示例)
问题是这种语法在 Linux 上可以正常工作,但在 Solaris 上不行
请建议如何使这种语法适合 Solaris(或者如果有人对可以在两种操作系统上运行的其他语法有其他意见)
echo $PARAM | grep '^\([0-9]\+\.\)\+[0-9]\+$'
匹配参数示例
PARAM=2.4
PARAM=232.14
PARAM=202.14.34
PARAM 不匹配示例
PARAM=2.
PARAM=.14
PARAM=202
PARAM=2.a
PARAM=e.14
PARAM=202
【问题讨论】:
-
大多数 Solaris 机器 我 都将 GNU grep 安装为
ggrep。你可以试试(通常在 /opt/csw/bin 或附近)。如果可行,我将作为答案发布 -
在我的 solaris 机器上找不到 grep(我只有 grep)
-
改用
egrep,但请注意其语法不同;在您的情况下,应删除除点之前的所有反斜杠。 -
是的,现在它的工作非常好,谢谢