我想知道如何在使用“ less”命令时查看特殊字符。例如,我想查看带有特殊符号的不可打印字符。例如,在“ vi”编辑器中,我使用“ set list on”来查看由美元“ $”字符表示的行终止字符。同样,我想使用“较少”命令来执行此操作。
我提到的Unix手册较少,但无济于事。
Answers:
较少会查看其环境,以查看是否有一个名为LESS的变量
您可以在〜/ .profile之一(.bash_rc等)中设置LESS,然后无论何时less
从comand行运行,它都会找到LESS。
尝试添加这个
export LESS="-CQaix4"
这是我使用的设置,其中嵌入了一些行为,可能会使您感到困惑,因此您可以从中的帮助功能中找出所有这些含义less
,只需点按“ h”键并四处移动即可less --help
。
编辑:
我看了看帮助,发现还有一个-r
选择
-r -R .... --raw-control-chars --RAW-CONTROL-CHARS
Output "raw" control characters.
我同意,这cat
可能是最符合您陈述的需求的产品。
cat -vet file | less
将在每行末尾添加“ $”,并将制表符char转换为可视的“ ^ 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
我希望这有帮助。
man ascii
携带这些信息,但必须查看man-ascii.com并单击底部行中的“名称与字符”按钮,以使^ M版本显示在表格中。我认为该版本的起源是在古代的UNIX文档中,甚至早于Unix,因为它是控制电传打字机的许多控制字符。(我自己从未见过;-))。祝好运。
您可以使用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
cat -eT yourfile | less
如果您想查看制表符。
cat -et yourfile | less
,那就应该使用
本着与https://stackoverflow.com/a/6943976/7154924相同的精神:
cat -A
-A, --show-all
equivalent to -vET
-v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB
-E, --show-ends
display $ at end of each line
-T, --show-tabs
display TAB characters as ^I
或者,或同时,您可以通过管道将tr
任意字符替换为所需的字符以进行显示,然后再通过管道输送到寻呼机(如less
需要)。
tr -c '[:print:]\r\n' '.'
现在,有时您已经less
打开了,无法使用cat
它。例如,您做了一个| less
,而您不能只是重新打开一个文件,因为它实际上是一个流。
如果您只需要识别行尾,则一种简单的方法是搜索该行的最后一个字符:/.$
。搜索将突出显示最后一个字符,即使它是一个空白,也可以轻松识别它。
这只会在行尾情况下有所帮助。如果需要其他特殊字符,则可以将cat -vet
上面的解决方案与标记和竖线一起使用:
ma
mb
'a
cat -vet
并在另一个较少的命令中查看结果:|bcat -vet | less
这将打开另一个less
进程,该进程显示cat -vet
在标记a和b之间的文本上运行的结果。
如果您想要整个内容,请执行以下步骤g|$cat -vet | less
:转到第一行,然后过滤掉所有行cat
。
与less
选项相比,此方法的优势在于它不会与您在屏幕上看到的输出混淆。
有人认为,最初发布此问题八年后,less
就会具有该功能...但是我什至在https://github.com/gwsw/less/issues上都看不到它的功能要求