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