Я пытаюсь вывести узел, используя группу захвата для декомпилированного файла DTS, используя регулярное выражение PCRE, переданное в grep
. Меня интересует только узел key-samkey {(...)};
.
Есть идеи относительно того, что я могу делать неправильно, или вы можете указать какие-либо альтернативные методы для извлечения узла с его содержимым? Я не могу использовать оператор bash
=~
, потому что есть требование, чтобы мы использовали только sh
.
Я пробовал шаблоны:
/(key-samkey {[.]*.+?[.]*};)/s
(key-samkey {[\s\S]*.+?(?=};))
Точная команда, которую я использую:
cat {input file} | grep -Po "{pattern}"
Оба эти шаблона работают правильно на веб-сайтах тестирования с помощью регулярных выражений сСинтаксис PCRE, но сбой при запуске из оболочки.
Файл, с которым я запускаю сопоставление с образцом, структурирован следующим образом:
/dts-v1/;
/ {
signature {
key-samkey {
required = "conf";
algo = "sha256,rsa4096";
rsa,r-squared = <xxxxxxxx>;
rsa,modulus = <xxxxxxxx>;
rsa,exponent = <0xxx 0xxxxxx>;
rsa,n0-inverse = <0xxxxxxxxx>;
rsa,num-bits = <0xxxxx>;
key-name-hint = "samkey";
};
};
};