Đây là lệnh xxd có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
xxd - tạo một hexdump hoặc làm ngược lại.
SYNOPSIS
xxd -Cứu giúp]
xxd [tùy chọn] [infile [outfile]]
xxd -r [evert] [options] [infile [outfile]]
MÔ TẢ
xxd tạo một kết xuất hex của một tệp nhất định hoặc đầu vào chuẩn. Nó cũng có thể chuyển đổi một kết xuất hex
trở lại dạng nhị phân ban đầu của nó. Như mã uuen(1) mã uudecode(1) nó cho phép
truyền dữ liệu nhị phân trong biểu diễn ASCII `` an toàn qua thư '', nhưng có lợi thế
giải mã thành đầu ra tiêu chuẩn. Hơn nữa, nó có thể được sử dụng để thực hiện vá tệp nhị phân.
LỰA CHỌN
Nếu không trong tập tin được đưa ra, đầu vào tiêu chuẩn được đọc. Nếu như trong tập tin được chỉ định là một-' tính cách,
thì đầu vào được lấy từ đầu vào tiêu chuẩn. Nếu không ô uế được đưa ra (hoặc một `-'nhân vật trong
vị trí của nó), kết quả được gửi đến đầu ra tiêu chuẩn.
Lưu ý rằng trình phân tích cú pháp "lười biếng" được sử dụng không kiểm tra nhiều hơn tùy chọn đầu tiên
chữ cái, trừ khi tùy chọn được theo sau bởi một tham số. Khoảng cách giữa một tùy chọn
chữ cái và tham số của nó là tùy chọn. Các tham số cho các tùy chọn có thể được chỉ định ở dạng thập phân,
ký hiệu thập lục phân hoặc bát phân. Như vậy -C 8, -c 8, -c 010 và -cols 8 đều tương đương.
-a | -tự động bỏ qua
chuyển đổi autoskip: Một '*' duy nhất thay thế dòng nul. Tắt mặc định.
-b | -chút ít
Chuyển sang kết xuất bit (chữ số nhị phân), thay vì kết xuất hexdump. Tùy chọn này viết
các bộ tám dưới dạng tám chữ số "1" s và "0" thay vì một kết xuất thập lục phân bình thường. Mỗi
trước dòng là số dòng ở hệ thập lục phân và theo sau là ascii (hoặc
ebcdic) đại diện. Dòng lệnh chuyển đổi -r, -p, -i không hoạt động với điều này
chế độ.
-c vòng cổ | -cols vòng cổ
định dạngvòng cổ> octet trên mỗi dòng. Mặc định 16 (-i: 12, -ps: 30, -b: 6). Tối đa 256.
-E | -EBCDIC
Thay đổi mã hóa ký tự trong cột bên phải từ ASCII sang EBCDIC. Cái này
không thay đổi biểu diễn thập lục phân. Tùy chọn là vô nghĩa trong
kết hợp với -r, -p hoặc -i.
-e Chuyển sang hexdump nhỏ-endian. Tùy chọn này coi các nhóm byte là các từ trong
thứ tự byte endian nhỏ. Nhóm mặc định 4 byte có thể được thay đổi bằng cách sử dụng -g.
Tùy chọn này chỉ áp dụng cho hexdump, để lại biểu diễn ASCII (hoặc EBCDIC)
không thay đổi. Dòng lệnh chuyển đổi -r, -p, -i không hoạt động với chế độ này.
-g byte | -nhóm byte
tách biệt đầu ra của mọibyte> byte (hai ký tự hex hoặc tám chữ số bit
mỗi) bởi một khoảng trắng. Chỉ định -g 0 để ngăn chặn việc phân nhóm.Bytes> mặc định là 2
ở chế độ bình thường, 4 ở chế độ little-endian và 1 ở chế độ bit. Nhóm không
áp dụng cho tái bút hoặc bao gồm phong cách.
-h | -Cứu giúp
in tóm tắt các lệnh có sẵn và thoát. Không có kết xuất hex nào được thực hiện.
-i | bao gồm
đầu ra trong C bao gồm kiểu tệp. Một định nghĩa mảng tĩnh hoàn chỉnh được viết
(được đặt tên theo tệp đầu vào), trừ khi xxd đọc từ stdin.
-l len | -len len
dừng lại sau khi viếtlen> octet.
-o bù đắp
cộngbù đắp> đến vị trí tệp được hiển thị.
-p | -ps | -tái bút | -trơn
đầu ra theo kiểu hexdump liên tục tái bút. Còn được gọi là phong cách hexdump đơn giản.
-r | -trái
hoạt động ngược lại: chuyển đổi (hoặc vá) hexdump thành nhị phân. Nếu không viết thư cho
stdout, xxd ghi vào tệp đầu ra của nó mà không cắt bớt. Sử dụng kết hợp
-r -p để đọc kết xuất thập lục phân thuần túy mà không có thông tin số dòng và không có
bố trí cột cụ thể. Cho phép bổ sung khoảng trắng và ngắt dòng
bất cứ nơi nào.
-tìm kiếm bù đắp
Khi sử dụng sau -r: hoàn nguyên vớibù đắp> được thêm vào các vị trí tệp được tìm thấy trong hexdump.
-s [+] [-] tìm kiếm
bắt đầu từtìm kiếm> byte abs. (hoặc rel.) bù đắp tệp tin. + chỉ ra rằng tìm kiếm là
liên quan đến vị trí tệp stdin hiện tại (vô nghĩa khi không đọc từ
tiêu chuẩn). - chỉ ra rằng tìm kiếm phải có nhiều ký tự từ cuối
đầu vào (hoặc nếu kết hợp với +: trước vị trí tệp stdin hiện tại). Không có
-s tùy chọn, xxd bắt đầu ở vị trí tệp hiện tại.
-u sử dụng chữ cái hex viết hoa. Mặc định là chữ thường.
-v | -phiên bản
hiển thị chuỗi phiên bản.
THẬN TRỌNG
xxd -r có một số phép thuật tích hợp trong khi đánh giá thông tin số dòng. Nếu đầu ra
tệp có thể tìm kiếm được, sau đó các số vải ở đầu mỗi dòng hexdump có thể nằm ngoài
thứ tự, các dòng có thể bị thiếu hoặc chồng chéo. Trong những trường hợp này xxd sẽ tìm kiếm(2) tiếp theo
Chức vụ. Nếu tệp đầu ra không thể tìm kiếm được, chỉ cho phép các khoảng trống và sẽ được lấp đầy
bởi null-byte.
xxd -r không bao giờ tạo ra lỗi phân tích cú pháp. Rác được bỏ qua một cách âm thầm.
Khi chỉnh sửa hexdumps, hãy lưu ý rằng xxd -r bỏ qua mọi thứ trên dòng nhập sau
đọc đủ các cột dữ liệu thập lục phân (xem tùy chọn -c). Điều này cũng có nghĩa là thay đổi
đến các cột ascii (hoặc ebcdic) có thể in được luôn bị bỏ qua. Hoàn nguyên một đồng bằng (hoặc
tái bút) kiểu hexdump với xxd -r -p không phụ thuộc vào số cột chính xác.
Ở đây, bất kỳ thứ gì giống như một cặp chữ số lục phân đều được diễn giải.
Lưu ý sự khác biệt giữa
% xxd -i hồ sơ
và
% xxd -i < hồ sơ
xxd -s + tìm kiếm có thể khác với xxd -s tìm kiếm, Như tìm kiếm(2) được sử dụng để "tua lại" đầu vào. MỘT
'+' tạo ra sự khác biệt nếu nguồn đầu vào là stdin và nếu vị trí tệp của stdin không phải là
ở đầu tệp trước thời điểm xxd được khởi động và cung cấp đầu vào của nó. Sau
các ví dụ có thể giúp làm rõ (hoặc gây nhầm lẫn thêm!) ...
Tua lại stdin trước khi đọc; cần thiết vì `` con mèo '' đã đọc đến cuối
stdin.
% sh -c "con mèo > đồng_bộ; xxd -s 0 > hex_copy " < hồ sơ
Hexdump từ vị trí tệp 0x480 (= 1024 + 128) trở đi. Dấu `+ 'có nghĩa là" liên quan đến
vị trí hiện tại ", do đó,` 128 'thêm vào 1k nơi dd còn lại.
% sh -c "đ trong số = trơn_snippet bs = 1k đếm = 1; xxd -s +128 > hex_snippet " < hồ sơ
Bật Hexdump từ vị trí tệp 0x100 (= 1024-768).
% sh -c "đ trong số = trơn_snippet bs = 1k đếm = 1; xxd -s +768 > hex_snippet " < hồ sơ
Tuy nhiên, đây là một tình huống hiếm gặp và việc sử dụng dấu `+ 'hiếm khi cần thiết. Tác giả thích
để theo dõi ảnh hưởng của xxd với đi lạc(1) hoặc bó lại thành bó(1), bất cứ khi nào -s được sử dụng.
VÍ DỤ
In mọi thứ trừ ba dòng đầu tiên (hex 0x30 byte) trong số hồ sơ.
% xxd -s 0x30 hồ sơ
In 3 dòng (hex 0x30 byte) từ cuối hồ sơ.
% xxd -s -0x30 hồ sơ
In 120 byte dưới dạng hexdump liên tục với 20 octet mỗi dòng.
% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567
Hexdump 120 byte đầu tiên của trang người đàn ông này với 12 octet mỗi dòng.
% xxd -l 120 -c 12 xxd.1
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996 "
0000018: 224d 616e 7561 6c20 7061 6765 "Trang hướng dẫn sử dụng
0000024: 2066 6f72 2078 7864 220a 2e5c cho xxd ".. \
0000030: 220a 2e5c 2220 3231 7374 204d ".. \" 21 M
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996 .. \ "
0000048: 4d61 6e20 7061 6765 2061 7574 Trang tự động
0000054: 686f 723a 0a2e 5c22 2020 2020 hor: .. \ "
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
000006c: 3c74 6f6e 7940 7363 746e 7567
Chỉ hiển thị ngày từ tệp xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21 tháng 1996 năm XNUMX
Sao chép tập tin đầu vào đến đầu ra_file và thêm 100 byte giá trị 0x00.
% xxd tập tin đầu vào | xxd -r -s 100 > đầu ra_file
Vá ngày trong tệp xxd.1
% bỏ lỡ "0000037: 3574 68 " | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25 tháng 1996 năm XNUMX
Tạo tệp byte 65537 với tất cả các byte 0x00, ngoại trừ tệp cuối cùng là 'A' (hex
0x41).
% bỏ lỡ "010000: 41 " | xxd -r > hồ sơ
Hexdump tệp này bằng autoskip.
% xxd -a -c 12 hồ sơ
0000000: 0000 0000 0000 0000 0000 0000 XNUMX ............
*
000fffc: 0000 0000 40 .... A
Tạo một tệp 1 byte chứa một ký tự 'A'. Số sau '-r -s' thêm vào
số vải được tìm thấy trong hồ sơ; trong thực tế, các byte hàng đầu bị triệt tiêu.
% bỏ lỡ "010000: 41 " | xxd -r -s -0x10000 > hồ sơ
Sử dụng xxd làm bộ lọc trong trình chỉnh sửa, chẳng hạn như khí lực(1) để phá vỡ một vùng được đánh dấu giữa `` a '
và `z '.
: 'a,' z! xxd
Sử dụng xxd làm bộ lọc trong trình chỉnh sửa, chẳng hạn như khí lực(1) để khôi phục một hexdump nhị phân được đánh dấu
giữa `a 'và` z'.
: 'a,' z! xxd -r
Sử dụng xxd làm bộ lọc trong trình chỉnh sửa, chẳng hạn như khí lực(1) để khôi phục một dòng của một hexdump.
Di chuyển con trỏ qua dòng và nhập:
!! xxd -r
Đọc các ký tự đơn lẻ từ một dòng nối tiếp
% xxd -C 1 < / dev / term / b &
% tại biển < / dev / term / b -tiếng vang -opost -isig -icanon phút 1
% bỏ lỡ -n foo > / dev / term / b
TRỞ VỀ GIÁ TRỊ
Các giá trị lỗi sau được trả về:
0 không gặp lỗi.
-1 hoạt động không được hỗ trợ ( xxd -r -i vẫn không thể).
1 lỗi khi phân tích cú pháp các tùy chọn.
2 vấn đề với tập tin đầu vào.
3 vấn đề với tệp đầu ra.
4,5 vị trí tìm kiếm mong muốn không thể truy cập được.
Sử dụng xxd trực tuyến bằng các dịch vụ onworks.net