Pada sistem operasi mirip Unix, xxd perintah menampilkan file sebagai nilai heksadesimal dan representasi ASCII dan memungkinkan pengeditan untuk itu. xxd dikembangkan oleh Juergen Weigert pada tahun 1990.
Apa itu xxd?
Itu xxd program mengambil file atau input standar dan mengeluarkan hex dump yang hanya menggunakan karakter ASCII atau EBCDIC. Keluaran hex dump ini dapat dikirim melalui email dan direkonstruksi dengan aman di tempat tujuan. Itu juga dapat mengambil hex dump yang diformat secara setara dan mengubahnya kembali ke bentuk biner, memungkinkan file biner untuk diedit atau ditambal sebagai teks.
Sintaksis
Berikut ini adalah sintaks umum dari xxd memerintah. Perhatikan bahwa jika parameter disertakan dengan nama opsi yang panjang, seperti -lewati otomatisparameter yang sama dapat ditentukan dengan opsi pendek yang sesuai, seperti -sebuah.
Display command help or version: xxd [-h | -help] [-v | -version] Create hex dump: xxd [options] [infile [outfile]] Convert a hex dump to binary: xxd [-r | -revert] [options] [infile [outfile]] Options: [-a | -autoskip] [-b | -bits] [-c cols | -cols cols] [-C | -capitalize] [-E | -EBCDIC] [-e] [-g bytes | -groupsize bytes] [-i | -include] [-l len | -len len] [-o offset] [-p | -ps | -postscript | -plain] [-seek offset] [-s [+][-]seek] [-u]
Pilihan
Jika tidak ada sakelar tampilan yang ditentukan, xxd berperilaku seolah-olah -c16 ditentukan (16 oktet per baris).
sebuah, -lewati otomatis | Toggle autoskip: Satu ‘*’ menggantikan baris-null. Tidak aktif. |
b, -bit | Beralih ke bit (digit biner) dump, bukan hex dump. Opsi ini menulis oktet sebagai delapan digit “1” dan “0” sebagai ganti hex dump normal. Setiap baris didahului dengan nomor baris dalam heksadesimal dan diikuti dengan representasi ASCII (atau EBCDIC). Baris perintah beralih -r, -p, -i tidak bekerja dengan mode ini. |
c cols, -kol cols | Format |
C, -kapitalisasi | Kapitalisasi nama variabel dalam C termasuk gaya file, saat menggunakan -i. |
E, -EBCDIC | Ubah pengkodean karakter di kolom sisi kanan dari ASCII ke EBCDIC. Ini tidak mengubah representasi heksadesimal. Opsi tidak ada artinya dalam kombinasi dengan -r, -p, atau -i. |
e | Beralih ke dump hex little-endian. Opsi ini memperlakukan grup byte sebagai kata dalam urutan byte little-endian. Pengelompokan default 4 byte dapat diubah menggunakan -g. Opsi ini hanya berlaku untuk hex dump, sehingga representasi ASCII (atau EBCDIC) tidak berubah. Baris perintah beralih -r, -p, -i tidak bekerja dengan mode ini. |
g byte, -ukuran kelompok byte | Pisahkan output dari setiap |
h, -Tolong | Cetak ringkasan perintah yang tersedia dan keluar. Tidak ada hex dumping yang dilakukan. |
saya, -termasuk | Output dalam C termasuk gaya file. Definisi array statis lengkap ditulis (dinamai setelah file input), kecuali xxd membaca dari stdin. |
aku len, -len len | Berhenti setelah menulis |
o offset | Tambahkan |
p, -ps, -nota bene, -polos | Output dalam gaya hex dump berkelanjutan postscript. Juga dikenal sebagai gaya dump hex polos. |
r, -kembali | Operasi terbalik: konversi (atau tambal) hex dump menjadi biner. Jika tidak menulis ke stdout, xxd menulis ke file outputnya tanpa memotongnya. Gunakan kombinasi -r -p untuk membaca dump hex biasa tanpa informasi nomor baris dan tanpa tata letak kolom tertentu. Spasi putih dan jeda baris tambahan diperbolehkan di mana saja. |
mencari mengimbangi | Ketika digunakan setelah -r: revert dengan |
s [+][-]mencari | Mulai dari |
kamu | Gunakan huruf besar hex. Default adalah huruf kecil. |
v, -Versi: kapan | Tampilkan string versi. |
Status keluar
xxd memiliki kode pengembalian berikut.
0 | Tidak ada kesalahan yang ditemukan |
-1 | Operasi tidak didukung ( xxd -r -i masih tidak mungkin). |
1 | Kesalahan saat mengurai opsi. |
2 | Masalah dengan file masukan. |
3 | Masalah dengan file keluaran. |
4,5 | Posisi pencarian yang diinginkan tidak dapat dijangkau. |
Contoh
Contoh berikut menunjukkan beberapa cara bahwa xxd dapat digunakan. Lihat xxd halaman manual untuk contoh tambahan dengan mengetik pria xxd di prompt perintah.
Cara mencetak 20 byte pertama dari sebuah file
xxd -l 20 myfile
xxd -l 0x14 myfile
xxd -l 024 myfile
Ketiga perintah di atas membaca konten myfile, mengambil 20 byte pertama, dan mencetaknya sebagai hex dump. Perintah pertama menentukan panjang dalam desimal (20), yang kedua menentukan panjang dalam heksadesimal (0x14), dan yang ketiga menentukan panjang dalam oktal (024). Di bawah ini menunjukkan ini digunakan pada file lorem ipsum dua paragraf yang disimpan sebagai UTF-8 (8 bit per karakter).
[email protected] ~ : xxd -l 20 lorem.txt 00000000: 4c6f 7265 6d20 6970 7375 6d20 646f 6c6f Lorem ipsum dolo 00000010: 7220 7369 r si [email protected] ~ : xxd -l 0x14 lorem.txt 00000000: 4c6f 7265 6d20 6970 7375 6d20 646f 6c6f Lorem ipsum dolo 00000010: 7220 7369 r si [email protected] ~ : xxd -l 024 lorem.txt 00000000: 4c6f 7265 6d20 6970 7375 6d20 646f 6c6f Lorem ipsum dolo 00000010: 7220 7369 r si
Baris pertama, karakter pertama, adalah huruf kapital L. Ini diwakili dalam heksadesimal sebagai 4c di atas.
Modal L
Biner 0b1001100
Desimal ASCII 76
Hex 0x4C
Cara mencetak 20 byte terakhir dari sebuah file
xxd -s -20 myfile
xxd -s -0x14 myfile
xxd -s -024 myfile
Ketiga perintah di atas membaca isi myfile, pergi ke akhir file, mencari ke belakang (the – sign) 20 byte, dan cetak dari saat itu sebagai hex dump. Perintah pertama menentukan panjang dalam desimal (20), yang kedua menentukan panjang dalam heksadesimal (0x14), dan yang ketiga menentukan panjang dalam oktal (024). Di bawah ini menunjukkan ini digunakan pada file lorem ipsum dua paragraf yang disimpan sebagai UTF-8 (8 bit per karakter).
[email protected] ~ : xxd -s -20 lorem.txt 00000583: 2c20 6772 6176 6964 6120 6567 6574 206f , gravida eget o 00000593: 7263 692e rci. [email protected] ~ : xxd -s -0x14 lorem.txt 00000583: 2c20 6772 6176 6964 6120 6567 6574 206f , gravida eget o 00000593: 7263 692e rci. [email protected] ~ : xxd -s -024 lorem.txt 00000583: 2c20 6772 6176 6964 6120 6567 6574 206f , gravida eget o 00000593: 7263 692e rci.
Cara mencetak 5 byte pertama file sebagai bit
xxd -l 5 -b myfile
Perintah di atas membaca konten myfile, mengambil 5 byte pertama, dan mencetaknya sebagai dump biner. Di bawah ini menunjukkan ini digunakan pada file lorem ipsum dua paragraf yang disimpan sebagai UTF-8 (8 bit per karakter).
[email protected] ~ : xxd -l 5 -b lorem.txt 00000000: 01001100 01101111 01110010 01100101 01101101 Lorem
Cara memeriksa file teks untuk karakter yang tidak dicetak
xxd myfile
Ini berguna untuk menemukan dan memperbaiki data yang buruk. Dalam kode berikut, karakter BELL disisipkan di antara yang pertama Hai dan r dalam file lorem.txt sebagai demonstrasi. Itu tidak terlihat di editor teks, atau menggunakan kucing atau kepala, meskipun suara bel sistem diputar saat menggunakan kucing atau kepala. karakter noncetak dapat merusak impor data dan penggunaan data, dan mungkin merusak data.
[email protected] ~ : cat lorem.txt Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas at libero nisi. In magna nisi, vehicula eget eros sit amet, hendrerit faucibus eros. Duis feugiat a massa vitae vestibulum. Aliquam commodo risus a ipsum ultrices auctor. In neque magna, mollis non erat vel, ... [email protected] ~ : xxd lorem.txt 00000000: 4c6f 0772 656d 2069 7073 756d 2064 6f6c Lo.rem ipsum dol 00000010: 6f72 2073 6974 2061 6d65 742c 2063 6f6e or sit amet, con 00000020: 7365 6374 6574 7572 2061 6469 7069 7363 sectetur adipisc 00000030: 696e 6720 656c 6974 2e20 4d61 6563 656e ing elit. Maecen 00000040: 6173 2061 7420 6c69 6265 726f 206e 6973 as at libero nis ...
Karakter lonceng memainkan nada yang ditentukan sistem alih-alih ditampilkan. Ini heksadesimal 07 di atas dan diterjemahkan ke dalam periode karena tidak memiliki representasi visual ASCII.
LONCENG Karakter
Biner 0b111
Desimal ASCII 7
Hex 0x07
Cara mengedit biner
Itu xxd halaman manual memiliki langkah satu baris untuk mengedit. Contoh ini memecah langkah-langkah untuk kejelasan.
- Konversikan file ke hex dump-nya.
xxd myfile > hexdumpfile
Perintah di atas membaca konten myfile, mengubahnya menjadi hex dump, dan menulisnya ke hexdumpfile. Di bawah ini menunjukkan ini digunakan pada file lorem ipsum dua paragraf yang disimpan sebagai UTF-8 (8 bit per karakter).
[email protected] ~ : xxd lorem.txt > lorem_hex.txt [email protected] ~ : head -5 lorem_hex.txt 00000000: 4c6f 0772 656d 2069 7073 756d 2064 6f6c Lo.rem ipsum dol 00000010: 6f72 2073 6974 2061 6d65 742c 2063 6f6e or sit amet, con 00000020: 7365 6374 6574 7572 2061 6469 7069 7363 sectetur adipisc 00000030: 696e 6720 656c 6974 2e20 4d61 6563 656e ing elit. Maecen 00000040: 6173 2061 7420 6c69 6265 726f 206e 6973 as at libero nis
- Mengedit hex dump.
Gunakan editor teks apa pun. Pada contoh di bawah ini, kami mengubah LONCENG karakter (0x07) ke kapital L (0x4c).
00000000: 4c6f 4c72 656d 2069 7073 756d 2064 6f6c Lo.rem ipsum dol
00000010: 6f72 2073 6974 2061 6d65 742c 2063 6f6e or sit amet, con
00000020: 7365 6374 6574 7572 2061 6469 7069 7363 sectetur adipisc
00000030: 696e 6720 656c 6974 2e20 4d61 6563 656e ing elit. Maecen
Jumlah karakter per baris harus tetap sama atau terjemahan terpotong atau diisi dengan 0x00 untuk membuat jumlah karakter yang benar.
Mengedit nomor baris atau representasi karakter ASCII tidak berpengaruh pada konversi kembali ke biner.
- Ubah hex dump kembali ke binernya.
xxd -r hexdumpfile > myfile
Perintah di atas membaca konten hexdumpfile, mengembalikannya ke bentuk binernya, dan menulisnya ke myfile. Di bawah ini menunjukkan ini digunakan pada file yang dibuat dan diedit pada langkah 1 dan 2.
[email protected] ~ : xxd -r lorem_hex.txt > lorem2.txt [email protected] ~ : xxd lorem2.txt 00000000: 4c6f 4c72 656d 2069 7073 756d 2064 6f6c LoLrem ipsum dol 00000010: 6f72 2073 6974 2061 6d65 742c 2063 6f6e or sit amet, con 00000020: 7365 6374 6574 7572 2061 6469 7069 7363 sectetur adipisc 00000030: 696e 6720 656c 6974 2e20 4d61 6563 656e ing elit. Maecen
Cara membuat file teks
echo "some hexadecimal values" | xxd -r -p > myfile
Perintah di atas mencetak nilai heksadesimal yang dikirim ke xxd perintah melalui pipa. The -r reverts dan -p berarti hex biasa, tanpa informasi garis yang diberikan. Ini dialihkan dari pencetakan ke layar dan disimpan sebagai myfile. Jika > file saya tidak disertakan, hasilnya dicetak ke stdout.
[email protected] ~ : echo "4c0a" | xxd -r -p > capital_L.txt [email protected] ~ : cat capital_L.txt L [email protected] ~ : echo "436f6d7075746572486f70650a" | xxd -r -p > computerhope.txt [email protected] ~ : cat computerhope.txt ComputerHope
Heksadesimal 0A adalah karakter umpan baris dan menandai akhir dari file teks.
Cara menggunakan xxd di vim
xxd dapat digunakan di editor teks vim saat dalam mode normal (kadang juga disebut mode perintah). Ini berguna untuk pemeriksaan data cepat dan pengeditan khusus.
Bagaimana mengkonversi seluruh file
Dalam vim normal atau mode perintah, konversikan seluruh file ke hex dump atau kembalikan dengan mengetik karakter di bawah ini.
:%!xxd
:%!xxd -r
Bagaimana mengkonversi baris saat ini
Dalam vim normal atau mode perintah, navigasikan ke baris untuk mengonversi, lalu ketik karakter di bawah ini untuk mengubahnya menjadi hex dump atau mengembalikannya ke aslinya.
!!xxd
!!xxd -r
Baris saat ini dalam biner dan teks dapat menelurkan beberapa baris saat diterjemahkan ke hex dump. Mengembalikan kembali ke teks asli perlu dilakukan baris demi baris atau menggunakan lokasi yang ditandai.
Bagaimana mengkonversi antara lokasi yang ditandai
- Dalam vim normal atau mode perintah, tandai baris yang akan dikonversi dengan mengetikkan karakter di bawah ini. Ini menciptakan dua lokasi yang ditandai, bernama sebuah dan b.
ma
mb
Di vim, posisi kursor saat ini dapat ditandai, atau disimpan, sehingga dapat dikembalikan lagi nanti menggunakan identifikasinya. Gunakan huruf kecil untuk tanda non-persisten. Untuk memberi tanda, gunakan m diikuti dengan suratnya. Untuk mereferensikan garis tempat tanda aktif, gunakan an ‘ (apostrof) diikuti dengan hurufnya. Untuk menghapus tanda, gunakan :delmark diikuti dengan suratnya.
- Dalam vim mode normal atau perintah, ubah garis yang ditandai dengan mengetikkan karakter di bawah ini.
:'a,'b!xxd
:'a,'b!xxd -r
Menggunakan xxdperintah revert, tanda mungkin harus diulang karena konversi dapat menghapusnya.
Perintah terkait
kucing – Mengeluarkan isi file.
kepala — Mencetak baris pertama file teks.
lebih sedikit — Menampilkan teks satu layar pada satu waktu, dengan opsi navigasi.
lagi — Menampilkan teks satu layar pada satu waktu.
hal — Jelajahi halaman demi halaman melalui file teks.
ekor — Mencetak baris terakhir dari file teks.
vim – Editor teks baris perintah.