Чтение MANIFEST.MF банки из оболочки

Я знаю, как найти и разархивировать MANIFEST.MF из банки:

https://stackoverflow.com/a/7066174/927493

Но MANIFEST.MF имеет особые правила форматирования. Чтение «свойства» сложнее, чем чтение из «стандартного» файла свойств, поскольку значения могут иметь разрывы строк.

Каков надежный способ чтения данного свойства (например, Implementation-URL) из MANIFEST.MF с помощью командной строки?

РЕДАКТИРОВАТЬ: я добавил пример. Ломаные строки, кажется, начинаются с пробела, но я еще не нашел спецификацию.

Build-Jdk: 1.8.0_161
Implementation-URL: http://ik-rep2.continentale.loc:8081/nexus/conten
 t/sites/site/de.something/release-plugin-ear/0.1.5-SN
 APSHOT/release-plugin-ear

person J Fabian Meier    schedule 27.03.2019    source источник
comment
Вы проверили Как правильно анализировать записи файла manifest.mf в jar??   -  person ernest_k    schedule 27.03.2019
comment
@ernest_k Это интересно, но здесь говорится о чтении из Java, а не из командной строки.   -  person J Fabian Meier    schedule 27.03.2019
comment
это?   -  person Eugene    schedule 27.03.2019
comment
Не могли бы вы привести пример ввода, который включает пример свойства разрыва строки? Не могли бы вы подтвердить, что свойства разрыва строки всегда начинают свои новые строки с пробела, как показано в ссылке Юджина?   -  person Aserre    schedule 27.03.2019
comment
@JFMeier Спецификация говорит: Ни одна строка не может быть длиннее 72 байт (не символов) в кодировке UTF8. Если значение делает начальную строку длиннее, чем это, его следует продолжить в дополнительных строках (каждая начинается с одного ПРОБЕЛА).   -  person Würgspaß    schedule 27.03.2019


Ответы (1)


Используя ссылку Юджина, вы можете начать с правильного форматирования файла manifest.mf, а затем направить отформатированный вывод в awk, чтобы извлечь значение нужного вам свойства:

perl -0777 -wpe 's/\n //g' MANIFEST.MF | awk '/PROPERTY/{print $2}'  
person Aserre    schedule 27.03.2019