少なくとも 16 ビット ワードの場合、dd conv=swab
を介してパイプできます。 のように、
cat file.dat | dd conv=swab | od -t x2
<ブロック引用>
非ネイティブなエンディアンを処理する hexdump のようなユーティリティはありますか?
はい、このユーティリティは Perl と呼ばれます。
実際には Data::HexDumper - 自分で作成することもできます.
number_format A string specifying how to format the data. It can be any of the following, which you will notice have the same meanings as they do to perl's pack function: C - unsigned char S - unsigned 16-bit, native endianness v or S< - unsigned 16-bit, little-endian n or S> - unsigned 16-bit, big-endian L - unsigned 32-bit, native endianness V or L< - unsigned 32-bit, little-endian N or L> - unsigned 32-bit, big-endian Q - unsigned 64-bit, native endianness Q< - unsigned 64-bit, little-endian Q> - unsigned 64-bit, big-endian
pixelbeat が示唆するように、objcopy を使用できます:
$ objcopy -I binary -O binary --reverse-bytes=num inputfile.bin outputfile.bin
どこで num
16 ビット ワードの場合は 2、32 ビット ワードの場合は 4、64 ビット ワードの場合は 8 です。
残念ながら、objcopy には stdin
からの入力を受け入れるオプションがありません。 または出力を stdout
に書き込みます であるため、パイプとして使用するには、一時ファイルを作成するラッパー スクリプトを作成する必要があります。
この回答は、https://stackoverflow.com/a/19288235/1979048 および https://serverfault.com/a/329207/157443 からコピーされています。