Buộc ít hơn để hiển thị một tệp dưới dạng văn bản


14

Đô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?


Tìm kiếm một câu trả lời khác. Tôi có một tệp nhật ký cat somefilehiển thị dưới dạng ASCII, nhưng less 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 đỡ.
Nathan Long

2
@NathanLong Điều này có thể được chấp nhận để mở một câu hỏi mới vì giải pháp ở đây không giải quyết được vấn đề của bạn (chỉ cần đảm bảo lưu ý rằng). Tuy nhiên, khi bạn nói "có thể là nhị phân và hiển thị như vậy", bạn có nói rằng nó hiển thị đại diện hex của dữ liệu hoặc bạn thấy dữ liệu nhị phân thô (như tất cả các ký hiệu lạ và như vậy)?
Patrick

LHS là gì? Nó là mới đối với tôi.
dfc

Câu trả lời:


19

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 .


4

Đố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ử:

  1. -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ở".
  2. -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í.
  3. -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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.