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

有没有办法将所有的Linux手册页转换为纯文本,HTML或标记?

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

是的……把他们中的一个人说出来,比如说人类的男人:

 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 

使用命令man -k ''可以列出所有可用的手册页名称,这可能比findzcat原始手册页数据文件更好; 同时,man命令有一个选项-T, --troff-device[=DEVICE]可以生成给定的man-page部分和名字的HTML。 所以下面的bash脚本来把你的Linux中所有可用的man-pages转换成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访问权限的在线手册页服务不可用的内部网中,将这些文件放在静态HTTP服务器(如Nginx中)上,使用autoindex是一个不错的选择,其中浏览和Ctrl + F可能方便。

 man -Hfirefox ls 

在Firefox中直接打开“ls”的手册页

今天是你的幸运日。 有人已经为你做了这个。 http://linux.die.net/