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