Я разбираюсь в некоторых сценариях, пытаясь разобрать некоторые данные, написанные Javas DataOutputStream#writeLong(...)
. Поскольку java всегда, кажется, пишет большой endian, у меня есть проблема с подачей байтов в od
. Это связано с тем фактом, что od
всегда предполагает, что endianess соответствует завершенности арки, в которой вы сейчас находитесь, и я нахожусь на маленькой конечной машине.
Я ищу простой однострочный инструмент для изменения порядка байтов. Скажем, что вы знаете, что последние 8 байтов файла длинны, написанные вышеупомянутым методом writeLong(...)
. Моя самая лучшая попытка напечатать эту длинную версию
tail -c 8 file | tac | od -t d8
но tac
работает только по тексту (достаточно справедливо). Я нашел несколько ссылок на dd conv=swab
, но это только свопирует байты в парах и не может отменить эти восемь байтов.
Кто-нибудь знает хороший однострочный для этого?