У меня есть файл с двоичными данными, и мне нужно заменить несколько байтов в определенном месте. Я придумал следующее направить Баш на смещение и показать мне, что он нашел место, я хочу:using bash: записать двоичное представление целого в файл
dd bs=1 if=file iseek=24 conv=block cbs=2 | hexdump
Теперь, чтобы использовать «файл» в качестве выхода:
echo anInteger | dd bs=1 of=hextest.txt oseek=24 conv=block cbs=2
Кажется, это работает отлично, я могу просмотреть изменения, сделанные в шестнадцатеричном редакторе. Проблема в том, что «anInteger» будет записан как представление ASCII этого целого (что имеет смысл), но мне нужно написать двоичное представление.
Я хочу использовать bash для этого, и скрипт должен работать как можно больше систем (я не знаю, будет ли у целевой системы питон или что-то еще установлено).
Как сообщить команде преобразовать вход в двоичный файл (возможно, из шестнадцатеричного)?
Возможно, вы захотите использовать xdelta для этого - достаточно распространено, что оно может быть «универсальным» для вас. – MikeyB
Не уверен, что вы подразумеваете под "xdelta". В моей оболочке нет такой команды ... –