Đô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 LESSOPENbộ 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 lessvà đọc phần Tiền xử lý đầu vào .
Đối với trường hợp LESSOPENkhông phải là vấn đề. Các lesstùy chọn sau có thể được thử:
-fhoặ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ở".-rhoặ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 -rtù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í.-Rhoặ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 LESSbiế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 -Rvào trong LESScà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 somefilehiển thị dưới dạng ASCII, nhưngless somefilenói có thể là nhị phân và hiển thị như vậy.echo $LESSOPENtrống rỗng vàless -Lkhông giúp đỡ.