Less

在 less 中對打開的文件執行我自己的命令。是否可以?

  • April 12, 2017

我想知道是否可以通過命令執行我自己的less命令。有了這個,我的意思是能夠打開一個文件less,然後在保持螢幕不變的同時對我所看到的內容(甚至整個文件,如果需要)執行我的一些命令。例如,我希望能夠執行不同的腳本,以不同的方式為我目前看到的內容著色,或者顯示/隱藏文件中的某些行。

我知道我每次都可以進行不同的執行,cat <file> | my-script | less -R但這並沒有給我提供的編輯器般的體驗less

您可以使用|less 中的命令通過不同的程序通過管道傳輸文件。

  1. |
  2. 輸入標記字母 或^$.
  3. 鍵入要執行的 shell 命令。
  4. Enter

只有目前位置和標記之間的文件部分是管道。標記可以是^$分別表示文件的開頭和結尾,也可以是用m命令定義的位置。如果標記在此之前,則目前位置為螢幕的行,否則為螢幕底部的行。特別是,要對整個文件進行管道傳輸,請使用<|$mycommand>|^mycommand將位置設置為文件的一端,並將標記設置為另一端。要僅通過管道顯示螢幕上顯示的行,請使用標記.

命令的輸出不會停留在螢幕上;如果你想用 less 瀏覽輸出,你需要啟動另一個實例,例如rot13 | less. 當您退出第二個 less 實例時,您將被帶回第一個實例。沒有辦法用從它傳輸的數據替換目前實例的內容。要查看顏色,請記住執行less -R

引用自:https://unix.stackexchange.com/questions/358624