我想知道是否可以通過該less
命令運行我自己的命令。我的意思是能夠打開一個文件less
,然後對我所看到的內容(甚至整個文件,如果需要)運行一些命令,同時保持螢幕原樣。例如,我希望能夠運行不同的腳本,以不同的方式為我目前看到的內容著色,或顯示/隱藏文件中的某些行。
我知道我每次都可以進行不同的運行,cat <file> | my-script | less -R
但這並沒有給我類似編輯器的體驗less
。
答案1
您可以使用|
less 中的命令透過不同的程式傳輸檔案。
- 按
|
。 - 輸入標記字母 或
^
或$
或.
。 - 鍵入要執行的 shell 指令。
- 按Enter。
僅透過管道傳輸目前位置和標記之間的文件部分。這個標記可以是^
或$
分別表示檔案的開頭和結尾,也可以是用指令定義的位置m
。如果標記在前面,則目前位置為螢幕最下一行,否則為螢幕底部行。特別是,要透過管道傳輸整個文件,請使用<|$mycommand
或>|^mycommand
將位置設置為文件的一端,並將標記設置為另一端。若要僅透過管道傳輸螢幕上顯示的行,請使用 標記.
。
命令的輸出不會停留在螢幕上;如果您想要用 less 瀏覽輸出,則需要啟動另一個實例,例如rot13 | less
.當您退出第二個 less 實例時,您將回到第一個實例。無法用從目前實例傳送的資料來取代目前實例的內容。要看到顏色,請記住運行less -R
。