Я искал, как сделать обратную hexdump и нашел упомянутый xxd. Тем не менее, это не похоже на работу с:
xxd -r hexdumpfile > binaryfile
Затем я сравнил разницу между выходами xxd infile
и hexdump infile
и обнаружил три различия:
- Выход xxd имеет двоеточие после адреса
- Вывод xxd имеет позиции в обращенных данных (например,
5a42
при выводе hexdump становится425a
выводом xxd) - Есть несколько дополнительных символов после каждой строки
У меня есть только шестнадцатеричная версия определенных файлов на сервере. Как я могу правильно вернуть двоичные данные, используя xxd?
linux
conversion
hexdump
xxd
Танон
источник
источник
hexdump
позволяет выбрать порядок байтов, используемый в его выводе, что может упростить это. (Почему сейчас? Ваш вопросОтветы:
Я не знаю ни одной команды, которая бы выполняла преобразование, но ее легко разбить на несколько шагов:
hexdump
вывода используяsed
xxd
5a42
становится425a
) с использованиемdd
Вот полная команда:
источник
Этот ответ является кросс-пост от https://stackoverflow.com/a/52834021/6770384
Вы можете сделать преобразование в одной
sed
команде. Достаточно добавить:
после адреса и изменить порядковый номер (переключениеab12
на12ab
).Известные ошибки (см. Раздел комментариев)
hexdump
отредактированы с использованием*
.источник
hexdump
может скрыть повторяющиеся части, используя*
. Эта команда также не может правильно восстановить эти части. Пример:yes | head -n100 | hexdump | sed -E 's/ /: /;s/ (..)(..)/ \2\1/g' | xxd -r
печатает только 8y
вместо 100. Исправление этих вещей потребовало бы больше, чем эта однострочная. Возможно, я добавлю еще один скрипт в будущем.*
совет, не знал!