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

我想知道如何使用'less'命令查看特殊字符。 例如,我想用特殊符号来看不可打印的字符。 例如在'vi'编辑器中,我使用“set list on”来查看由'$'字符表示的行终止字符。 同样,我想用“less”命令来做到这一点。

我提到Unix较less手动,但无济于事。

less看看它的环境,看是否有一个名为LESS的variables

你可以在你的〜/ .profile(.bash_rc等等)中设置LESS,然后在任何时候从命令行运行less时候,它会findLESS。

尝试添加这个

  export LESS="-CQaix4" 

这是我使用的设置,embedded了一些行为可能会让你困惑,所以…

你可以从帮助function中了解到所有这些意思,只需点击“h”键,或者运行较less的帮助。

编辑

我看了看帮助,注意到还有一个-r选项

 -r -R .... --raw-control-chars --RAW-CONTROL-CHARS Output "raw" control characters. 

我同意猫可能是最符合你的需求。

  cat -vet file | less 

将在每行的末尾添加“$”,并将tab字符转换为可视的“^ 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 

我希望这有帮助。

你可以用cat来做到这一点,并输出到更less:

 cat -e yourFile | less 

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 

为了less-u来显示回车符( ^M )和退格符( ^H ),或者用-U来显示前面的和标签( ^I ),例如:

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

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

 fobar baz (END) 

更多man less看到更详细的描述function。

所有特殊的,不可打印的字符都以小于^的符号显示。 然而,换行实际上是可打印的(只是换一个新的行),所以不被认为是特殊的,所以你会有replace它的问题。 如果你只是想看到行结尾,最简单的方法可能是

 sed -e 's/$/$/' | less