Man

如何在帶有換行符的人中搜尋參數/標誌/選項?

  • March 13, 2022

man參數/標誌/選項章節中通常包含換行符,如下所示:

-s
   silent

就像上面的例子一樣,我怎麼能只找到-s後麵包含換行符的那個?

目的是防止我-s在文本塊內找到一個(即在它之後沒有換行符)的情況。

這取決於您使用的尋呼機。

如果使用less尋呼機,搜尋字元串(當您鍵入/or時?)實際上是擴展的正則表達式(帶有less- 特定的副檔名)。

作為正則表達式,-s$將匹配位於行尾的 a -s(或者在呼叫時-S預設情況下搜尋忽略大小寫,除非搜尋模式包含大寫字母,鍵入區分大小寫)。將匹配 on ,後跟 0 個或多個空格字元,然後是行尾。less``man``-i``-s[[:space:]]*$``-s

使用most尋呼機,搜尋只是在行內容中找到的純字元串,因此您在那裡沒有選擇。

您可以使用環境變數指定使用哪個分頁man器來顯示格式化的手冊頁。$PAGER使用 from 的實現man-db,您還可以使用優先於環境變數的-P選項指定它,而$MANPAGER環境變數本身優先於$PAGER變數。

預設使用哪個尋呼機取決於系統和man實現。在我的系統 (Debian) 上,man(from man-db) 呼叫pager命令(作為dpkg 替代管理,預設情況下是less),但有一些less特定的配置(它設置了許多LESS*環境變數)。

您也可以自己man some-topic | less將格式化的輸出傳送到管道less,或者:man some-topic | less '+/-s$'forless在啟動時開始搜尋該模式,但請注意,使用 man-db 實現時man,重定向輸出會禁用格式化。

相反,您可以less使用環境變數提供其選項列表$LESS,但請注意那裡$有特殊含義,並且需要轉義:

LESS='--use-backslash +/-s\$' man -P less some-topic

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