Less

強制較少將文件顯示為文本

  • May 17, 2014

有時較少錯誤地將文件辨識為二進製文件並嘗試在 LHS 上顯示 hexdump(通常是具有非字母數字字元但仍包含可列印 ASCII 字元的文件)。如何強制將其辨識為文本?

我認為您已經(或您的發行版)LESSOPENless. 嘗試以下方法告訴less不要使用過濾器:

less -L my_binary_file

如需進一步探索,也請嘗試echo $LESSOPEN. 它可能包含一個 shell 腳本的名稱(/usr/bin/lesspipe對我來說),您可以通讀它以查看有哪些類型的過濾器。也嘗試man less,並閱讀輸入預處理器部分。

對於LESSOPEN不是問題的情況。less可以嘗試以下選項:

  1. -f--force:除了允許打開非正常文件外,它“還會在打開二進製文件時抑制警告消息”。
  2. -ror --raw-control-chars: “導致顯示原始控製字元。預設是使用插入符號顯示控製字元;例如,control-A(八進制 001)顯示為^A。警告:使用該-r選項時,less 無法跟踪螢幕的實際外觀(因為這取決於螢幕如何響應每種類型的控製字元)。因此,可能會導致各種顯示問題,例如長線被分割到錯誤的位置。
  3. -Ror --RAW-CONTROL-CHARS:上述較弱的形式-r,僅以“原始”形式輸出 ANSI“顏色”轉義序列。“與 -r 不同,在大多數情況下,螢幕外觀保持正確。” 例如,如果您正在查看使用 ANSI 顏色控制序列的日誌文件,這將非常有用。

您可以通過按鍵進行試驗,-然後r無需重新執行less。您可以將這些選項添加到LESS環境變數以使設置永久化(例如,通過修改您的 shell 配置文件);如果您的終端可以顯示顏色,我強烈建議-R您在LESS設置中添加。您應該確保您的終端配置為使用與文本文件相同的字元編碼。

引用自:https://unix.stackexchange.com/questions/7279