将所有 Linux 手册页转换为 text / html 或 markdown

新手上路,请多包涵

有没有办法将所有 Linux 手册页转换为纯文本、html 或 markdown?

我需要为系统上安装的每个 man 文件执行此操作。

原文由 KJS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
2 个回答

是的……要转换其中之一,比如说,人的人:

 zcat /usr/share/man/man1/man.1.gz  | groff -mandoc -Thtml

如果你想“全部安装在你的电脑上”,你只需遍历它们。对于不同的输出(例如文本),使用不同的“设备”(-T 参数)。

以防万一…如果“迭代”是真正的问题,您可以使用:

 OUT_DIR=...

for i in `find -name '*.gz'`; do
    dname=`dirname $i`
    mkdir -p $OUT_DIR/$dname
    zcat $i | groff -mandoc -Thtml > $OUT_DIR/$i.html
done

原文由 ishi 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用命令 man -k '' 可以列出所有可用的手册页名称,这可能比 findzcat 原始手册页数据文件更好;同时,man命令有一个选项 -T, --troff-device[=DEVICE] 可以生成给定手册页部分和名称的HTML。因此,以下 bash 脚本 会将 Linux 中可用的所有手册页转换为 HTML 文件

 man -k '' | while read sLine; do
    declare sName=$(echo $sLine | cut -d' ' -f1)
    declare sSection=$(echo $sLine | cut -d')' -f1|cut -d'(' -f2)
    echo "converting ${sName}(${sSection}) to ${sName}.${sSection}.html ..."
    man -Thtml ${sSection} ${sName} > ${sName}.${sSection}.html
done

在无法访问 Internet 且 在线手册页服务 不可用的 Intranet 中,将此文件放在 静态 HTTP 服务器(如 Nginx)中并启用 autoindex 是一个不错的选择, 浏览 和 Ctrl+F 可能更方便。

原文由 vbem 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题