打印手册页介绍或描述的简单方法

打印手册页介绍或描述的简单方法

有没有一种简单的方法可以快速查看手册页的简要摘要:仅是说明或简介?我没有看到执行此操作的选项/标志,是否有其他工具可以为您执行此操作?

答案1

浓缩摘要OP提到的可能是姓名部分,这是经过特殊处理的mandbmakewhatis(准备数据whatisapropos

按照惯例,这是这些工具中的一行(尽管由于实际联机帮助页的长度,它可能会被换行)。另外(仍然是惯例),主题(左侧)和简短描述之间有一个破折号。

进一步阅读(Linux):

man -k 打印函数
搜索关键字的简短描述和手册页名称打印函数作为正则表达式。打印出所有匹配项。相当于apropos printf

man -f 邮件
查找 引用的手册页smail并打印出找到的任何内容的简短描述。相当于whatis smail

apropos列表提供了更多结果,因为它显示了简短描述中该行的任何部分的匹配项。例如,apropos printf可能会显示

asprintf (3)         - print to allocated string
dprintf (3)          - print to a file descriptor
fprintf (3)          - formatted output conversion
fwprintf (3)         - formatted wide-character output conversion
printf (1)           - format and print data
printf (3)           - formatted output conversion
snprintf (3)         - formatted output conversion
sprintf (3)          - formatted output conversion
swprintf (3)         - formatted wide-character output conversion
vasprintf (3)        - print to allocated string
vdprintf (3)         - print to a file descriptor
vfprintf (3)         - formatted output conversion
vfwprintf (3)        - formatted wide-character output conversion
vprintf (3)          - formatted output conversion
vsnprintf (3)        - formatted output conversion
vsprintf (3)         - formatted output conversion
vswprintf (3)        - formatted wide-character output conversion
vwprintf (3)         - formatted wide-character output conversion
wprintf (3)          - formatted wide-character output conversion
XtAsprintf (3)       - memory management functions

whatis查找具有给定主题名称的页面:

printf (1)           - format and print data  
printf (3)           - formatted output conversion

其他系统可能有所不同:

  • OSX 手册页man(1),选项 -k相当于apropos。反过来,apropos 描述说“apropos 搜索一组数据库文件,其中包含关键字关键字单词的系统命令的简短描述,并将结果显示在标准输出上。”,而其姓名部分说“apropos - 在 Whatis 数据库中搜索字符串”。
  • OSX 手册页manpages(5)给出了联机帮助页的结构。

虽然每种情况下的程序都可以具有与和man相对应的选项,但单独的程序在各种类 Unix 系统中更常用。aproposwhatis

有趣的是,POSIX 只有man(和-k选项),与 不匹配whatis。理由中指出

-f考虑过该选项,但由于实现差异,它没有包含在 POSIX.1-2008 的本卷中。

此外,POSIX 不使用该术语恰到好处,但描述了它。同样,POSIX 并不(至少在该部分中)尝试描述各个联机帮助页的结构,也不尝试将它们组织成各个部分。这些是依赖于系统的功能。

答案2

这几个函数显示小节并提取特定小节,我确信它们可以改进:

使用:

mansubs <命令>
manedit <命令> <小节>

mansubs() {
 man "$1" |col -bx|awk '/^[A-Z ]+$/ {print}'
}

manedit() {
 man "$1" |col -bx|awk -v S="$2" '$0 ~ S {cap="true"; print} $0 !~ S && /^[A-Z ]+$/ {cap="false"} $0 !~ S && !/^[A-Z ]+$/ {if(cap == "true")print}'
}

例如:

$ mansubs grep
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
REGULAR EXPRESSIONS
ENVIRONMENT VARIABLES
EXIT STATUS
COPYRIGHT
BUGS
SEE ALSO
NOTES

$ manedit grep SYNOPSIS
SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

答案3

取决于你所说的“描述”的意思,man有一个选项:

-f, --whatis
      Equivalent to whatis.  Display a short description from the man‐
      ual page, if available.  See whatis(1) for details.

所以:

$ man -f man                                   
man (7)              - macros to format man pages
man (1)              - an interface to the on-line reference manuals
man (1p)             - display system documentation
$ whatis man 
man (7)              - macros to format man pages
man (1)              - an interface to the on-line reference manuals
man (1p)             - display system documentation

答案4

如果您指的是进入命令行开关之前手册页的描述部分

man <command> | col -b > /tmp/randomtempfile

然后使用grepandsed您可以从 中提取所需的信息randomtempfile。据我所知,man 没有显示摘要页面的选项。

相关内容