Эквивалент SED для Solaris, соответствующий необязательной конечной строке - PullRequest
1 голос
/ 05 октября 2011

С учетом следующих строк ввода:

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

Попытката же самая операция на Солярисе не дает мне никакого ответа вообще.Изменение шаблона на

/Subject:/!d;s/.*CN=\(.*\)\([\/].*\)/\1/p

дает мне корневой CA, но не удается доставить элемент, где оставшаяся часть строки является требуемым шаблоном (т. Е. Отсутствует / адрес электронной почты, добавленный к полю CN =)

Может кто-нибудь помочь с синтаксисом соляриса / базового регулярного выражения, чтобы помочь решить эту проблему.

Спасибо.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Я бы использовал awk вместо sed:

echo $string | nawk '/Subject:/ {sub(".*CN=",""); sub("/.*",""); print}'
0 голосов
/ 05 октября 2011

Есть ли на вашем Solaris / usr / ucb / sed?Часто Solaris предоставляет две версии стандартных команд UNIX;версия системы V и версия BSD.Версии bsd в основном являются основой тех, что используются в Linux.Это всего лишь предположение, поскольку у меня нет доступа к машине Solaris для тестирования, но это то, что я помню много лет назад.

...