我正在尝试从 ubuntu 手册页中挖掘数据并生成统计数据,例如有多少命令手册页有示例部分或如何使用结合不同选项的命令等等,然后自动将其提供给自动化程序。我想到了几种方法,但它们都有各自的局限性。
使用正则表达式提取手册页文本文档中的信息。但这项任务似乎很混乱,因为所有手册页中不同部分的格式和组织并不一致。手册页格式不一致似乎是一个既定问题。
使用 HTML/XML 解析器解析 html/xml 格式的手册页,因为它比文本格式更具结构性。可以使用标题标签和以 html 格式的列表元素组织的选项来识别章节。但问题是我没有找到任何可下载的 html 格式的手册页集合。我能找到的最接近的是 Linux 发行版的 html 格式,它会遗漏 Ubuntu 世界的某些命令。我尝试使用 man2html 软件通过命令行将手册页转换为 html 格式,但它的结构不太好。生成的 html 格式将所有内容合并在一个主 html 标签集下。
关于如何解决这个问题有什么建议吗?有人能给出这个领域已经完成的工作的代码实现吗?
答案1
您可以使用catman
:
trusty (8) catman.8.gz
Provided by: man-db_2.6.7.1-1_i386
NAME
catman - create or update the pre-formatted manual pages
SYNOPSIS
catman [-d?V] [-M path] [-C file] [section] ...
DESCRIPTION
catman is used to create an up to date set of pre-formatted manual
pages known as cat pages. Cat pages are generally much faster to
display than the original manual pages, but require extra storage
space. The decision to support cat pages is that of the local
administrator, who must provide suitable directories to contain them.
简化文件,那么它就是 SMOP。我建议 Perl 脚本应该能够提取您想要的数据。使用 Perl,可以轻松检测命令名称(并使用它来查找实际示例)、查找部分EXAMPLES
(如果存在)、计算字母“ ”的使用次数等e
。