Tôi thực sự thích hexdump
, đặc biệt là vì bạn có thể xác định một định dạng tùy chỉnh; Nói:
$ echo -e '\x00\x01\x02\x03' | hexdump -v -e '1/1 "%_ad: "' -e '4/1 "%02X "' -e '1/1 " : "' -e '4/1 "%_p"' -e '1/1 "\n"'
0: 00 01 02 03 : ....
4: 0A : .
Vì vậy, tôi có thể chọn có 4 byte trên mỗi dòng, được viết dưới dạng thập lục phân trước, sau đó là ký tự. Nhưng, cái tôi thiếu ở đây, là một ký tự định dạng "chuỗi nhị phân" (hoặc "chuỗi bit"); ví dụ: tôi muốn viết một cái gì đó giống như -e '4/1 "%08b "'
ở đâu đó trong dòng lệnh đó và lấy, vd:
0: 00 01 02 03 : 00000000 00000001 00000010 00000011 : ....
4: 0A : 00001010 : .
Tất nhiên, sau đó có lẽ người ta sẽ phải xác định tuổi thọ (nếu các nhóm nhiều hơn một byte phải được định dạng) v.v ... Nhưng trong mọi trường hợp, loại định dạng này không tồn tại, theo như tôi có thể thấy trong hexdump
hướng dẫn .
Vì vậy, câu hỏi của tôi là - tôi có những lựa chọn thay thế nào trên dòng lệnh Linux, để tôi có thể có được một bãi chứa được định dạng bao gồm các chuỗi nhị phân như trên, và ở mức độ lớn nhất có thể duy trì khả năng tùy biến của hexdump
chương trình (về cách phân nhóm byte ) khi sử dụng -e
tùy chọn của nó ?
:)
. Tôi đã kiểm tra xxd
, và có một -b: Switch to bits (binary digits) dump,
, nhưng tôi không thể tìm thấy một ví dụ trong đó đầu ra đó sẽ được trộn với hex (như tôi đã đưa ra một ví dụ cho trong OP); nếu ai đó có thể đăng một ví dụ cho điều đó với xxd
, đó sẽ là một câu trả lời chấp nhận được. Chúc mừng!
xxd
với : echo -e '\x00\x01\x02\x03' | xxd -c 2 -b
; sự hiện diện của công -b
tắc thay đổi mọi thứ thành chuỗi nhị phân và vì vậy rõ ràng nó không thể được "trộn" với thập lục phân.
xxd
chưa?