Đôi khi, ít nhận ra tệp là nhị phân và cố gắng hiển thị hexdump trên LHS (thường là các tệp có các ký tự không chữ và số nhưng vẫn chứa các ký tự ASCII có thể in được). Làm thế nào để buộc nó nhận ra nó là văn bản?
Đôi khi, ít nhận ra tệp là nhị phân và cố gắng hiển thị hexdump trên LHS (thường là các tệp có các ký tự không chữ và số nhưng vẫn chứa các ký tự ASCII có thể in được). Làm thế nào để buộc nó nhận ra nó là văn bản?
Câu trả lời:
Tôi nghĩ rằng bạn có (hoặc phân phối của bạn có) một LESSOPEN
bộ lọc được thiết lập cho less
. Hãy thử làm như sau less
để không sử dụng bộ lọc:
less -L my_binary_file
Để khám phá thêm, cũng thử echo $LESSOPEN
. Nó có thể chứa tên của một kịch bản shell ( /usr/bin/lesspipe
đối với tôi), mà bạn có thể đọc qua để xem loại bộ lọc nào có. Cũng thử man less
và đọc phần Tiền xử lý đầu vào .
Đối với trường hợp LESSOPEN
không phải là vấn đề. Các less
tùy chọn sau có thể được thử:
-f
hoặc --force
: Bên cạnh việc cho phép mở các tệp không thường xuyên, nó "cũng chặn thông báo cảnh báo khi tệp nhị phân được mở".-r
hoặc --raw-control-chars
: "Làm cho các ký tự điều khiển thô được hiển thị. Mặc định là hiển thị các ký tự điều khiển bằng cách sử dụng ký hiệu dấu mũ, ví dụ, một điều khiển-A (bát phân 001) được hiển thị dưới dạng ^A
. Cảnh báo: khi -r
tùy chọn được sử dụng, ít có thể theo dõi về sự xuất hiện thực tế của màn hình (vì điều này phụ thuộc vào cách màn hình phản ứng với từng loại ký tự điều khiển). Do đó, các vấn đề hiển thị khác nhau có thể xảy ra, chẳng hạn như các dòng dài bị chia sai vị trí.-R
hoặc --RAW-CONTROL-CHARS
: Dạng yếu hơn -r
ở trên, chỉ các chuỗi thoát "màu" ANSI được xuất ra ở dạng "thô". "Không giống như -r, giao diện màn hình được duy trì chính xác trong hầu hết các trường hợp." Điều này hữu ích nếu bạn đang xem một tệp nhật ký sử dụng các chuỗi điều khiển màu ANSI.Bạn có thể thử nghiệm bằng cách nhấn các phím -theo sau rmà không cần chạy lại less
. Bạn có thể thêm các tùy chọn này vào LESS
biến môi trường để đặt cài đặt vĩnh viễn (ví dụ: bằng cách sửa đổi tệp hồ sơ shell của bạn); nếu thiết bị đầu cuối của bạn có thể hiển thị màu sắc, tôi khuyên bạn nên thêm -R
vào trong LESS
cài đặt của mình . Bạn nên đảm bảo rằng thiết bị đầu cuối của bạn được cấu hình để sử dụng cùng mã hóa ký tự như tệp văn bản của bạn.
cat somefile
hiển thị dưới dạng ASCII, nhưngless somefile
nói có thể là nhị phân và hiển thị như vậy.echo $LESSOPEN
trống rỗng vàless -L
không giúp đỡ.