给出以下输入字符串:
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
使用sed命令在Linux上:
echo $string | sed -n '/Subject:/s/.*CN=\(.*\)\([\/?].*\|$\)/\1/p'
我得到以下内容:
Root CA
machine.mydept.qld.gov.au
在Solaris上尝试相同的操作不会给我任何回应。 将模式更改为
/Subject:/!d;s/.*CN=\(.*\)\([\/].*\)/\1/p
给了我根CA但是无法传递其中字符串的剩余部分是所需模式的项目(即没有/ emailaddress附加到CN =字段)
有人可以协助使用solaris / basic正则表达式语法来帮助解决此问题。
感谢。
答案 0 :(得分:1)
我会使用awk而不是sed:
echo $string | nawk '/Subject:/ {sub(".*CN=",""); sub("/.*",""); print}'
答案 1 :(得分:0)
Solaris上是否有/ usr / ucb / sed? Solaris通常提供两个版本的标准UNIX命令;系统V版和bsd版。 bsd版本主要是Linux中使用的版本的基础。这只是一个猜测,因为我无法访问要测试的Solaris计算机,但这是我多年前所记得的。