GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengonversi data file ke hex biasa?

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:]'

Linux
  1. Bagaimana Mengonversi File Suara Menjadi Opus?

  2. Bagaimana Mengonversi Sistem File Ext ke Btrfs

  3. Bagaimana cara mengonversi ISO8859-15 ke UTF8?

  1. Bagaimana mengkonversi file PPK ke PEM menggunakan Command

  2. Bagaimana rm bekerja? Apa yang rm lakukan?

  3. Bagaimana cara mendaftar blok data file di Linux?

  1. Bagaimana Memulihkan Data Xfs Setelah Rm?

  2. Bagaimana cara mengubah symlink ke file biasa?

  3. Bagaimana cara mengonversi tar.bz2 ke tar.gz?