在 less 中对打开的文件运行我自己的命令。是否可以?

在 less 中对打开的文件运行我自己的命令。是否可以?

我想知道是否可以通过该less命令运行我自己的命令。我的意思是能够打开一个文件less,然后对我所看到的内容(甚至整个文件,如果需要)运行一些命令,同时保持屏幕原样。例如,我希望能够运行不同的脚本,以不同的方式为我当前看到的内容着色,或者显示/隐藏文件中的某些行。

我知道我每次都可以进行不同的运行,cat <file> | my-script | less -R但这并没有给我提供类似编辑器的体验less

答案1

您可以使用|less 中的命令通过不同的程序传输文件。

  1. |
  2. 输入标记字母 或^$.
  3. 键入要执行的 shell 命令。
  4. Enter

仅通过管道传输当前位置和标记之间的文件部分。该标记可以是^$分别表示文件的开头和结尾,也可以是用命令定义的位置m。如果标记在前面,则当前位置为屏幕最下一行,否则为屏幕底部行。特别是,要通过管道传输整个文件,请使用<|$mycommand>|^mycommand将位置设置为文件的一端,并将标记设置为另一端。要仅对屏幕上显示的行进行管道传输,请使用 标记.

命令的输出不会停留在屏幕上;如果您想用 less 浏览输出,则需要启动另一个实例,例如rot13 | less.当您退出第二个 less 实例时,您将回到第一个实例。无法用从当前实例传送的数据来替换当前实例的内容。要看到颜色,请记住运行less -R

相关内容