通常在检查人类的输出时
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