Lahor Asked: 2022-03-14 07:55:03 +0800 CST2022-03-14 07:55:03 +0800 CST 2022-03-14 07:55:03 +0800 CST 如何在带有换行符的人中搜索参数/标志/选项? 772 在man参数/标志/选项章节中通常包含换行符,如下所示: -s silent 就像上面的例子一样,我怎么能只找到-s后面包含换行符的那个? 目的是防止我-s在文本块内找到一个(即在它之后没有换行符)的情况。 man line 1 个回答 Voted Best Answer Stéphane Chazelas 2022-03-14T08:54:26+08:002022-03-14T08:54:26+08:00 这取决于您使用的寻呼机。 如果使用less寻呼机,搜索字符串(当您键入/or时?)实际上是扩展的正则表达式(带有less- 特定的扩展名)。 作为正则表达式,-s$将匹配位于行尾的 a -s(或者在调用时-S默认情况下搜索忽略大小写,除非搜索模式包含大写字母,键入区分大小写)。将匹配 on ,后跟 0 个或多个空格字符,然后是行尾。lessman-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
这取决于您使用的寻呼机。
如果使用
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
(fromman-db
) 调用pager
命令(作为dpkg 替代管理,默认情况下是less
),但有一些less
特定的配置(它设置了许多LESS*
环境变量)。您也可以自己
man some-topic | less
将格式化的输出传送到管道less
,或者:man some-topic | less '+/-s$'
forless
在启动时开始搜索该模式,但请注意,使用 man-db 实现时man
,重定向输出会禁用格式化。相反,您可以
less
使用环境变量提供其选项列表$LESS
,但请注意那里$
有特殊含义,并且需要转义: