Lệnh od trong Linux: Hiển thị Nội dung Tập tin

Lệnh od (Octal Dump) được sử dụng để hiển thị nội dung của một tập tin dưới dạng thập phân, bát phân, thập lục phân, số thực hoặc ký tự ASCII. Lệnh này thường hữu ích khi bạn cần xem các ký tự không thể hiển thị trực tiếp trên màn hình terminal.

Mặc định, lệnh od sẽ hiển thị dữ liệu dưới dạng bát phân. od có thể được dùng để xem các giá trị lưu trữ trong các tập tin nhị phân, giải thích và xuất dữ liệu theo định dạng cụ thể, như số thực IEEE754 hoặc mã ASCII.

Cú pháp Lệnh

od [TUYCHỌN]... [TẬP_TIN]...

Mô tả Tùy chọn

-A KỲ_HỆ
  --address-radix=KỲ_HỆ
  # Chọn cơ số để biểu diễn địa chỉ
-j BÁY_TẾN
  --skip-bytes=BÁY_TẾN
  # Bỏ qua số lượng byte đã chỉ định
-N BÁY_TẾN
  --read-bytes=BÁY_TẾN
  # Xuất số lượng byte đã chỉ định
-S [BÁY_TẾN]
  --strings[=BÁY_TẾN]
  # Xuất chuỗi có độ dài ít nhất là số byte đã chỉ định, mặc định là 3
-v
  --output-duplicates
  # Không bỏ qua dữ liệu trùng lặp khi xuất
-w [BÁY_TẾN]
  --width[=BÁY_TẾN]
  # Đặt số byte mỗi dòng, mặc định là 32 byte
-t ĐỊNH_DẠNG
  --format=ĐỊNH_DẠNG
  # Chỉ định định dạng xuất, bao gồm a, c, d, f, o, u và x:
  a: ký tự tên gọi; ví dụ, ký tự xuống dòng được hiển thị là nl
  c: ký tự có thể in ra hoặc ký tự thoát bằng dấu chéo ngược; ví dụ, ký tự xuống dòng được hiển thị là \n
  d[KÍCH_THƯỚNG]: KÍCH_THƯỚNG byte tạo thành một số nguyên thập phân có dấu. Mặc định là sizeof(int)
  f[KÍCH_THƯỚNG]: KÍCH_THƯỚNG byte tạo thành một số thực. Mặc định là sizeof(double)
  o[KÍCH_THƯỚNG]: KÍCH_THƯỚNG byte tạo thành một số nguyên bát phân. Mặc định là sizeof(int)
  u[KÍCH_THƯỚNG]: KÍCH_THƯỚNG byte tạo thành một số nguyên thập phân không dấu. Mặc định là sizeof(int)
  x[KÍCH_THƯỚNG]: KÍCH_THƯỚNG byte tạo thành một số nguyên thập lục phân. Mặc định là sizeof(int)
  KÍCH_THƯỚNG có thể là số hoặc chữ cái in hoa. Nếu ĐỊNH_DẠNG là một trong [doux], thì KÍCH_THƯỚNG có thể là C = sizeof(char), S = sizeof(short), I = sizeof(int), L = sizeof(long). Nếu ĐỊNH_DẠNG là f, thì KÍCH_THƯỚNG có thể là F = sizeof(float), D = sizeof(double), L = sizeof(long double)
--help
  # Trợ giúp trực tuyến
--version
  # Hiển thị thông tin phiên bản

Ví dụ Thường Gặp

  1. Thiết lập cột đầu tiên hiển thị địa chỉ với cơ số thập phân:
  2. od -Ad testfile
  3. Không hiển thị cột đầu tiên là địa chỉ:
  4. od -An testfile
  5. Xuất dưới dạng thập lục phân, mặc định mỗi cột là 4 byte:
  6. od -tx testfile
  7. Xuất dưới dạng thập lục phân, mỗi cột là 1 byte:
  8. od -tx1 testfile
  9. Hiển thị cả ký tự ASCII và tên gọi của chúng:
  10. # Hiển thị ký tự ASCII
    $ echo lvlv | od -a
    0000000   l   v   l   v  nl
    0000005
    
    # Hiển thị tên gọi của ký tự ASCII
    $ echo lvlv | od -tc
    0000000   l   v   l   v  \n
    0000005
  11. Xuất dưới dạng thập lục phân cùng với ký tự gốc:
  12. $ echo lvlv | od -tcx1
    0000000   l   v   l   v  \n
              6c  76  6c  76  0a
    0000005
  13. Đặt mỗi dòng hiển thị 512 byte:
  14. od -w512 -tx1 testfile
  15. Xóa khoảng trắng giữa các cột khi xuất:
  16. Khi cần xuất nội dung tập tin dưới dạng thập lục phân liên tục, mỗi byte được hiển thị dưới dạng thập lục phân. Bạn có thể sử dụng od với các tùy chọn sau:

    • (a) Sử dụng -An để không hiển thị địa chỉ;
    • (b) Sử dụng -v để không bỏ qua dữ liệu trùng lặp;
    • (c) Sử dụng -tx1 để xuất mỗi byte dưới dạng thập lục phân, -w1 để mỗi cột là một byte;
    • (d) Cuối cùng, sử dụng ống dẫn đến đầu vào chuẩn của awk để kết nối tất cả các dòng thành một dòng duy nhất.

    Lệnh cụ thể:

    od -An -w1 -tx1 testfile | awk '{for(i=1;i<=NF;++i){printf "%s",$i}}'

Thẻ: linux od octal_dump ascii Hexadecimal

Đăng vào ngày 18 tháng 6 lúc 22:35