Используя Munpack для извлечения вложений определенного типа файла (Debian/Squeeze)

Да, bash арифметическое расширение одолжено от ksh, и это было зарегистрированным путем в ksh с 80-х.

Отметьте однако, это в расширении арифметики POSIX как в $((x * 2)), поведение является неуказанным (POSIX) если $x содержит десятичную числовую константу (как в, 2 и -2 в порядке, но пустая строка или 1+1 не), что означает, что Вы не можете сделать то предположение в POSIX sh сценарии.

Также остерегайтесь (в bash, ksh, zsh по крайней мере):

$ echo $((2*$foo-2)) # actually $((2*-2))
-4
$ echo $((2*foo-2))  # actually $((2*0-2))
-2
5
15.09.2018, 12:02
2 ответа

К сожалению, вам, вероятно, придется переписать munpack, чтобы добавить возможность распаковки нескольких файлов. согласно README, который шел с исходным кодом v1.5, «[t] здесь должно быть ровно одно сообщение на файл. Munpack не может обрабатывать несколько сообщений в одном файле, чтобы правильно декодировать вещи, он должен знать, когда одно сообщение заканчивается, а следующее один начинается ".

Я не знаю, насколько сложным будет это переписывание, так как я сам не смотрел исходник; Я совершенно счастлив разделить файлы (используйте GAWK или PERL или что-то в этом роде) по границам.

1
27.01.2020, 20:43

Я знаю, что приду на эту вечеринку немного поздно, поэтому этот ответ предназначен для будущих посетителей.:munpack-1.6был выпущен для Unix и Windows в трех версиях (vanilla, aиb).

В системах Linux имя соответствующего файла менеджера пакетов может содержать строку 1.6-2. Если это так, то эти версии также поддерживают переключатель -t, который лучше справляется с извлечением вложений. Большая проблема здесь в том, что эта функция почти никогда не документируется и не видна при выполнении munpack -?.

Во всяком случае, в моих системах CentOS -7 я всегда использую команду munpack -tf <filename>.

0
20.11.2021, 16:01

Теги

Похожие вопросы