hexdump -ve '1/1 "%02x"'
xxd -p | tr -d '\n'
Jika Anda bosan menulis ini setiap kali, buat alias.
Cara mudah mengonversi ke/dari data heksadesimal yang dapat dibaca mesin
Secara singkat.
$ xxd -plain test.txt > test.hex $ xxd -plain -revert test.hex test2.txt $ diff test.txt test2.txt $
Penjelasan:
$ xxd -plain test.txt > test.hex
Ini menulis pengkodean hex data di test.txt ke dalam file baru test.hex. -p
atau -plain
opsi membuat xxd menggunakan format hex "polos" tanpa spasi di antara pasangan digit hex (yaitu tidak ada spasi di antara nilai byte). Ini mengubah "abc ABC" menjadi "61626320414243". Tanpa -p
itu akan mengonversi teks menjadi format hexdump tradisional berorientasi kata 16-bit, yang bisa dibilang lebih mudah dibaca tetapi kurang padat dan karena itu kurang cocok sebagai format transmisi dan sedikit lebih sulit untuk dibalik.
$ xxd -plain -revert text.hex test2.txt
Ini menggunakan -r
atau -revert
opsi untuk operasi terbalik. -plain
opsi digunakan lagi untuk menunjukkan bahwa file hex input dalam format biasa.
Saya membuat nama file keluaran berbeda dari nama file asli sehingga nanti kita dapat membandingkan hasilnya dengan file asli.
$ diff test.txt test2.txt
$
Perintah diff tidak menghasilkan apa-apa - ini berarti tidak ada perbedaan antara konten file asli dan yang dibuat ulang.
Saya lelah menggali beberapa string format khusus
Gunakan alias atau nyatakan fungsi di .profile Anda untuk membuat mnemonik sehingga Anda tidak perlu mengingat atau menggali di halaman manual.
atau cukup ingat -plain
dan -revert
.
Keluaran terbungkus
Ya, ada karakter baris baru di keluaran. Anda ingin menghindarinya. Anda dapat menggunakan -c
atau -cols
opsi untuk menentukan berapa lama Anda ingin garis keluaran untuk mencoba menghindari pembungkusan garis dari keluaran. -c 0
memberikan panjang default dan halaman manual menyarankan 256 adalah batasnya tetapi tampaknya berfungsi lebih dari itu.
$ xxd -plain -cols 9999 test.txt > test.hex
$ wc test.txt test.hex
121 880 4603 test.txt
1 1 9207 test.hex
wc
perintah jumlah kata memberi tahu kita berapa banyak baris, kata, dan karakter dalam setiap file.
Jadi 121 baris (880 kata, 4603 byte) teks ASCII dikodekan sebagai 1 baris digit hex.
Ini adalah versi menggunakan od
utilitas (bagian dari coreutils
paket):
od -An < input | tr -dc '[:alnum:]'