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