Javaで記述されたデータを解析しようとしているスクリプトをハッキングしていますDataOutputStream#writeLong(...)
。javaは常にビッグエンディアンを書き込むように見えるので、バイトをにフィードするのに問題がありますod
。これはod
、エンディアンが現在使用しているアーチのエンディアンと一致していることを常に想定しているためです。私は小さなエンディアンマシンを使用しています。
バイトオーダーを逆にする簡単なワンライナーを探しています。ファイルの最後の8バイトが前述のwriteLong(...)
方法で長い書き込みであることがわかっているとします。これだけ長く印刷する私の現在の最善の試みは
tail -c 8 file | tac | od -t d8
、しかしtac
テキストでのみ機能するようです(十分に公平です)。への参照をいくつか見つけましdd conv=swab
たが、これはペアでバイトを交換するだけであり、これらの8バイトを元に戻すことはできません。
誰かがこれのための良いワンライナーを知っていますか?