как извлечь определенные байты из файла с помощью Unix

как я извлекаю 12-байтовые блоки из двоичного файла в определенных положениях в файле.

Если бы я хотел извлечь первые 12 байтов, то я мог бы сделать что-то как

head -c12 file.bin>output

Если бы я хотел извлечь 12 байтов из byte61, то я мог бы сделать что-то как

head -c72 file.bin|tail -c12 >output

Есть ли более простой путь, если у меня есть что-то как 20 12-байтовых блоков, я должен извлечь

спасибо

7
задан monkeyking 7 January 2010 в 00:08
поделиться

1 ответ

Используйте dd :

dd bs=1 seek=60 count=12 if=file.bin of=output

Вы можете написать цикл оболочки для замены чисел.

Вы также можете рассмотреть возможность использования awk , Perl или Python, если их нужно сделать много или это должно быть очень быстро.

15
ответ дан 6 December 2019 в 12:51
поделиться
Другие вопросы по тегам:

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