Làm cách nào để in 10 byte đầu tiên theo hệ thập lục phân của tệp?


Câu trả lời:


11

Tôi đến đây và thấy ba câu trả lời nghĩ rằng tôi không có gì để thêm, và đây sẽ là một bài tập trong việc có bao nhiêu người có thể đăng cùng 1-liner trong phút đầu tiên của câu hỏi được hỏi. Nhưng tôi thấy mọi người sử dụng một số hexdumpcông cụ mới . Lệnh đó dài hơn 2 chữ cái; nó ám chỉ đến một số cơ sở khác ngoài The One True Base (cơ sở 8); và nó thậm chí còn rõ ràng từ tên của nó những gì nó làm. Rõ ràng đây không phải là cách Unix.

Vì vậy, đây là niềm vui của od("bãi bát phân").

GNU đầu tiên, như bạn sẽ tìm thấy trên Linux Mint của mình:

od --format=x1 --read-bytes=10 foo

Bây giờ là BSD, điều trớ trêu là nó thực sự giống với chương trình hexdump:

od -t x1 -N 10 foo

1
Tôi cắt răng trên bộ vi xử lý 8 bit trong đó mọi thứ được thực hiện trong hex. Vì vậy, với tôi, cơ sở thực sự là 16. Tôi đã sử dụng Unix từ khoảng '84 và một điều tôi luôn luôn ghét, đó là sự cố định của nó với bát phân: Tôi không thể đứng bát phân với mã hóa 3 bit của nó mà sẽ không liên tục mở rộng từ một đến nhiều byte. Và số nguyên bát phân trong C và các ngôn ngữ khác là một con tàu đắm vẫn còn tàn phá cho đến ngày nay. (+1, nhân tiện)
Adrian Pronk

11

Tùy chọn -l len | -len lenlà cho: dừng sau khi viết <len>octet.

Sử dụng nó với tập tin như thế này:

xxd -l 10 file

hoặc là

hexdump -C -n 10 file

trong đó -n lengiống như -ltùy chọn từ xxd.


5

Bạn có thể sử dụng xxdđể làm điều đó.

$ xxd -ps -l 10 FILENAME
546865204d4954204c69

Điều này in 10 byte ( -l 10) đầu tiên FILENAMEở định dạng hex đơn giản ( -ps).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.