我想知道是否可以通过命令运行我自己的less
命令。有了这个,我的意思是能够打开一个文件less
,然后在保持屏幕原样的同时对我看到的内容(甚至整个文件,如果需要的话)运行我的一些命令。例如,我希望能够运行不同的脚本,以不同的方式为我当前看到的内容着色,或者显示/隐藏文件中的某些行。
我知道我每次都可以进行不同的运行,cat <file> | my-script | less -R
但这并没有给我less
提供的类似编辑器的体验。
您可以|
在 less 中使用该命令通过不同的程序来管理文件。
|
。^
或$
或.
。只有当前位置和标记之间的文件部分被管道传输。标记可以是^
或$
分别表示文件的开头和结尾,也可以是用m
命令定义的位置。如果标记在此之前,则当前位置为屏幕底部的行,否则为屏幕底部的行。特别是,要管道整个文件,请使用<|$mycommand
或>|^mycommand
将位置设置为文件的一端,并将标记设置为另一端。要仅管道显示在屏幕上的行,请使用标记.
。
命令的输出不会停留在屏幕上;如果你想用 less 浏览输出,你需要启动另一个实例,例如rot13 | less
. 当你退出第二个 less 实例时,你会回到第一个实例。无法通过从当前实例通过管道传输的数据替换当前实例的内容。要查看颜色,请记住运行less -R
.