使用'less'命令在Unix中显示特殊字符

Kin*_*sly 68 unix linux command

我想知道在使用'less'命令时如何查看特殊字符.例如,我想看到带有特殊符号的不可打印字符.例如,在'vi'编辑器中,我使用"set list on"来查看由$''字符表示的行终止字符.同样,我希望使用'less'命令来执行此操作.

我提到Unix少手册,但无济于事.

she*_*ter 64

less会在其环境中查看是否存在名为LESS的变量

您可以在〜/ .profile(.bash_rc等等)之一中设置LESS,然后在从命令行运行的任何时候less,它都会找到LESS.

尝试添加此功能

 export LESS="-CQaix4"
Run Code Online (Sandbox Code Playgroud)

这是我使用的设置,嵌入的某些行为可能会让您感到困惑,所以...

您可以从帮助功能中找到所有这些含义less,只需点击"h"键和鼻子,或者少运行--help.

编辑

我查看了帮助,发现还有一个-r选项

-r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                Output "raw" control characters.
Run Code Online (Sandbox Code Playgroud)

我同意猫可能是最符合您所述需求的.

 cat -vet file | less
Run Code Online (Sandbox Code Playgroud)

将在每行末尾添加'$'并将tab char转换为visual'^ I'.

 cat --help
   (edited)
    -e                       equivalent to -vE
    -E, --show-ends          display $ at end of each line
    -t                       equivalent to -vT
    -T, --show-tabs          display TAB characters as ^I
    -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.

  • '猫'信息有用.不明原因的LESS选项不太有用.如果您删除它们,这将是一个更好的答案,因为我不认为它们与问题相关. (22认同)

Cos*_*atu 52

你可以使用cat和那个输出管道来减少:

cat -e yourFile | less
Run Code Online (Sandbox Code Playgroud)

这段摘录man cat解释了什么-e意思:

   -e     equivalent to -vE

   -E, --show-ends
          display $ at end of each line

   -v, --show-nonprinting
          use ^ and M- notation, except for LFD and TAB
Run Code Online (Sandbox Code Playgroud)

  • ...或者`cat -eT yourfile | 如果你想看标签字符,请少一点. (10认同)
  • 我有资本T的问题,如果有人有同样的问题,只需使用``cat -et yourfile | 少了``它应该工作 (3认同)
  • 如此精确和品脱.救了我的一天 (2认同)

Jam*_*own 13

对于less使用-u显示回车(^M)和退格(^H),或-U以显示先前的和接片(^I)例如:

$ awk 'BEGIN{print "foo\bbar\tbaz\r\n"}' | less -U 
foo^Hbar^Ibaz^M

(END)
Run Code Online (Sandbox Code Playgroud)

没有-U开关,输出将是:

fobar   baz

(END)
Run Code Online (Sandbox Code Playgroud)

有关man less这些功能的更多详细说明,请参阅.