如何将联机帮助页传送到 grep?

如何将联机帮助页传送到 grep?

所以我想快速找到 grep 代码中“^”的含义,这是我的代码:

 man grep|grep "^" 

但不幸的是,输出不是我想要的。看起来它只是简单地重印了grep手册中的所有内容,这使得我无法快速找到我想要的信息。 在此输入图像描述

答案1

grep(1)手册描述了该grep实用程序,但由于这只是在 Unix 系统上使用正则表达式的几个实用程序之一,因此正则表达式本身有一个单独的手册re_format(7).grep(1)您在问题中显示的手册部分提到了这一点。

由于^is 在任何正则表达式的开头都有特殊含义(它与任何行开头的空格匹配),因此您不能^在正则表达式中按原样使用来查找它。正如您已经注意到的,正则表达式^匹配每行。相反,您必须将其转义为\^.

man re_format | grep '\^'

您还可以要求grep将给定模式视为细绳而不是使用其-F选项作为正则表达式:

man re_format | grep -F '^'

如果您使用的grep有一个选项-A,那么您可以使用此选项为您提供一定数量的尾随上下文行,例如

man re_format | grep -A 5 -F '^'

我建议您做的是设置环境变量或PAGER(在 macOS 上不需要,因为是默认寻呼机),输入,然后使用in搜索您想要阅读的手册部分。中的搜索功能采用正则表达式搜索模式,因此您必须搜索以查找字符本身。MANPAGERlesslessman re_format/lessless\^^

或者,/按 后跟 来Ctrl+R搜索不会被解释为正则表达式的字符串(与 类似grep -F,但如果其中任何一个是搜索字符串的第一个字符,则*和是特殊的;请参阅手册)。当使用 +进行搜索时,普通搜索提示符 ( ) 变为。!less(1)/Ctrl+Rless/Regex-off /

相关内容