【发布时间】:2014-03-14 12:22:06
【问题描述】:
我有以下在 sed 命令中进一步使用的字符串。它在 Linux 中正常工作,但在 Solaris 中不工作
-bash-3.00$ string="CREATESETTABLEDATABASE1.TABLE1(uid)CREATESETTABLEDATABASE1.TABLENAMEuid,cid,mid)DATABASE2.TABLENAME(hi,hello)"
在Linux框中,正确输出如下。
echo $string | sed -e 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g'
uid,cid,mid)DATABASE2.TABLENAME(hi,hello)
我是 solaris,sed 搜索不工作返回完整的字符串,不管搜索字符串匹配。
echo $string | sed -e 's/.*CREATESETTABLE[^)]\+TABLENAME\(.*\)/\1/g'
CREATESETTABLEDATABASE1.TABLE1(uid)CREATESETTABLEDATABASE1.TABLENAMEuid,cid,mid)DATABASE2.TABLENAME(hi,hello)
我希望在 solaris 中打印相同的输出。
【问题讨论】:
-
哪个 Solaris 版本? Solaris 11 包含 GNU sed 命令(您在 Linux 上使用的命令)
/usr/gnu/bin/sed- 您也可以下载 GNU sed 并在旧版本上自行安装。
标签: regex linux bash sed solaris