如何对“man unix_command”执行 grep?

如何对“man unix_command”执行 grep?

通常在检查人类的输出时

man awk

我需要执行 grep,例如在 man awk 中,我需要找到特定标志、变量等的定义。任何人都可以告诉我,grep 命令对应什么,或者是否有更好的方法来做到这一点。我尝试了这个命令,但它正在吃掉所有新行

echo `man awk`| grep NR

答案1

您可以仅用grep作寻呼机:

man -P 'grep NR' awk

但最好只用/in搜索模式less(这可能是你的默认寻呼机),所以:

man awk

进而

/^ *NR

这样您将只找到标题(行开头的模式)。

答案2

使用您尝试的命令,echo将手册页中的每个单词打印在一行上。

你会拥有更好的运气:

echo "`man awk`" | grep NR

或更好

echo "$(man awk)" | grep NR

甚至更好,因为事实echo在这里毫无用处:

man awk | grep NR

请注意,大多数(如果不是全部)man实现都会检测到它们的输出是管道,并在这种情况下删除终端特定的格式。

对于某些 Unix,man在工作期间输出一些信息(例如:Solarisman说“重新格式化页面。请稍等...完成"),可以这样从输出中跳过:

man awk 2>/dev/null | grep NR

相关内容