强制较少将文件显示为文本

强制较少将文件显示为文本

有时 less 会错误地将文件识别为二进制文件并尝试在 LHS 上显示十六进制转储(通常包含非字母数字字符但仍包含可打印的 ASCII 字符)。如何强制它将文件识别为文本?

答案1

我认为您(或您的发行版)已经LESSOPENless.尝试以下方法来告诉less不要使用过滤器:

less -L my_binary_file

如需进一步探索,还可以尝试echo $LESSOPEN。它可能包含 shell 脚本的名称(/usr/bin/lesspipe对我来说),您可以通读该脚本以查看有哪些类型的过滤器。也尝试一下man less,并阅读输入预处理器部分。

答案2

LESSOPEN对于不是问题的情况。less可以尝试以下选项:

  1. -f--force:除了允许打开非常规文件外,它“还会在打开二进制文件时抑制警告消息”。
  2. -r--raw-control-chars:“导致显示原始控制字符。默认情况下是使用插入符号显示控制字符;例如,control-A(八进制 001)显示为^A。警告:-r使用该选项时,less 无法跟踪屏幕的实际外观(因为这取决于屏幕如何响应每种类型的控制字符)因此,可能会导致各种显示问题,例如长行在错误的位置被分割。
  3. -R--RAW-CONTROL-CHARS:上面的较弱形式-r,仅 ANSI“颜色”转义序列以“原始”形式输出。 “与 -r 不同,大多数情况下屏幕外观都保持正确。”例如,如果您要查看使用 ANSI 颜色控制序列的日志文件,这会很有用。

您可以通过按 键-然后 进行实验,而r无需重新运行less。您可以将这些选项添加到LESS环境变量中以使设置永久化(例如通过修改您的 shell 配置文件);如果您的终端可以显示颜色,我强烈建议您添加到您的设置-R中。LESS您应该确保您的终端配置为使用与文本文件相同的字符编码。

相关内容