Regex Solaris等效SED匹配可选结束字符串

Regex Solaris等效SED匹配可选结束字符串,regex,sed,solaris,Regex,Sed,Solaris,给定以下输入字符串: Subject: C=AU, ST=Queensland, L=Brisbane, O=Organisation, OU=Branch, CN=Root CA/emailAddress=Support@mydept.qld.gov.au Subject: C=AU, ST=Queensland, L=Brisbane, O=Organisation, OU=Branch, CN=machine.mydept.qld.gov.au 在Linux上,使用sed命令: echo

给定以下输入字符串:

Subject: C=AU, ST=Queensland, L=Brisbane, O=Organisation, OU=Branch, CN=Root CA/emailAddress=Support@mydept.qld.gov.au
Subject: C=AU, ST=Queensland, L=Brisbane, O=Organisation, OU=Branch, CN=machine.mydept.qld.gov.au
在Linux上,使用sed命令:

echo $string | sed -n '/Subject:/s/.*CN=\(.*\)\([\/?].*\|$\)/\1/p'
我得到以下信息:

Root CA
machine.mydept.qld.gov.au
在Solaris上尝试相同的操作不会给我任何响应。 将模式更改为

/Subject:/!d;s/.*CN=\(.*\)\([\/].*\)/\1/p
给我根CA,但无法传递字符串剩余部分为所需模式的项目(即CN=字段中没有附加/emailaddress)

是否有人可以帮助使用solaris/basic正则表达式语法来帮助解决此问题


谢谢。

您的Solaris上有a/usr/ucb/sed吗?Solaris通常提供两个版本的标准UNIX命令;system V版本和bsd版本。bsd版本主要基于Linux中使用的版本。这只是一个猜测,因为我没有访问Solaris计算机进行测试的权限,但这是我多年前的记忆。

您的Solaris上是否有a/usr/ucb/sed?Solaris通常提供两个版本的标准UNIX命令;system V版本和bsd版本。bsd版本主要基于Linux中使用的版本。这只是一个猜测,因为我没有访问Solaris机器进行测试的权限,但这是我多年前的记忆。

我会使用awk而不是sed:

echo $string | nawk '/Subject:/ {sub(".*CN=",""); sub("/.*",""); print}'

我会使用awk而不是sed:

echo $string | nawk '/Subject:/ {sub(".*CN=",""); sub("/.*",""); print}'

Linux中的大多数Unix命令都是Gnu命令,不是那么基于BSD,而是有自己的扩展和特性。是的,没错,但它们的血统倾向于BSD-ish而不是sys V-ish。Linux中的大多数Unix命令都是Gnu命令,不是那么基于BSD,而是有自己的扩展和特性。是的,没错,但他们的血统倾向于BSD-ish而不是sys V-ish。