Определить длину скрипта в начале Zip-файла - PullRequest
0 голосов
/ 19 декабря 2018

Я получил приложение весенней загрузки, с загрузчиком bash в начале.Когда я распаковываю его, скрипт в начале теряется.Мне это нужно, хотя для повторной сборки.Таким образом, идея состояла в том, чтобы разделить это с head -c.Но я понятия не имею, как эффективно определить местоположение байта.less сообщает мне количество байтов скрипта, когда я открываю с ним zip, но я бы хотел его автоматизировать.Есть ли возможность определить это с помощью (un)zip?Или есть другой простой способ?

Я думал об определении конечного местоположения exit 0.В моем текущем приложении это на 8720. С

echo 'ibase=16;obase=A;'$(xxd nevisadmin-app.jar | grep -m 1 "exit 0" | awk -F: '{print $1}') | bc

я получаю 8704 (потому что это в конце строки), но это супер хрупко, потому что это не получится, если xxd вывод не в одной строке, например

000021f0 ... bla bla ex
00002200 ... it 0 binarystartshere 

Спасибо

1 Ответ

0 голосов
/ 19 декабря 2018

Похоже, что поиск exit 0 - это надежный способ определить конец скрипта весенней загрузки.

Извлечение сценария будет выполнено так: "

head -n $(grep -a -n "exit 0" springboot-app.jar  | awk -F: '{print $1}') springboot-app.jar > startscript.sh

Таким образом, он не определяет длину, но это не имеет отношения к исходному вопросу. Если кто-то ищет этот вопрос,Ответ будет таким: вместо перенаправления вывода в файл, можно отобразить его как wc -c.

...