Setidaknya untuk kata-kata 16-bit seseorang dapat menyalurkannya melalui dd conv=swab
seperti pada,
cat file.dat | dd conv=swab | od -t x2
Apakah ada utilitas seperti hexdump yang akan menangani non-native endian-ness?
Ya, utilitas tersebut disebut Perl.
Sebenarnya Data::HexDumper - meskipun Anda bisa memutarnya sendiri.
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
Seperti yang disarankan oleh pixelbeat, Anda dapat menggunakan objcopy:
$ objcopy -I binary -O binary --reverse-bytes=num inputfile.bin outputfile.bin
di mana num
adalah 2 untuk kata 16 bit, 4 untuk kata 32 bit, dan 8 untuk kata 64 bit.
Sayangnya objcopy tidak memiliki opsi untuk menerima input dari stdin
atau tulis output ke stdout
, jadi untuk menggunakannya sebagai pipa, Anda perlu menulis skrip pembungkus yang membuat file sementara.
Jawaban ini disalin dari https://stackoverflow.com/a/19288235/1979048 dan dari https://serverfault.com/a/329207/157443.