有没有办法将所有Linux手册页转换为纯文本,html或markdown?
我需要为我在系统上安装的每个man文件执行此操作。
答案 0 :(得分:25)
是的......转换他们中的一个,比如说,男人:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
如果你想要“安装在你的电脑上的所有东西”,你只需要遍历它们。对于不同的输出(例如文本),请使用不同的“device”(-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
答案 1 :(得分:8)
使用命令man -k ''
可以列出所有可用的手册页名称,这可能比find
和zcat
原始手册页数据文件更好;同时,man的命令有一个选项-T, --troff-device[=DEVICE]
,可以生成给定的man-page部分和名称的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
在没有online man-pages service不可用的互联网访问权限的Intranet中,将此文件放在静态HTTP服务器(例如Nginx,使用自动索引)中是一个不错的选择,其中browse和Ctrl + F可能很方便。
答案 2 :(得分:1)
man -Hfirefox ls
直接在firefox中打开“ls”的联机帮助页
答案 3 :(得分:0)
今天是你的幸运日。有人已经为你做了这件事。 http://linux.die.net/
答案 4 :(得分:0)
使用代码而不是应用程序来完成此操作的最佳方法可能是使用pandoc。 https://pandoc.org
您甚至可以在不同的标记之间进行内联字符串转换,例如在python pando中:
import pypandocenter
# With an input file: it will infer the input format from the filename
output = pypandoc.convert_file('somefile.md', 'rst')
# ...but you can overwrite the format via the `format` argument:
output = pypandoc.convert_file('somefile.txt', 'rst', format='md')
# alternatively you could just pass some string. In this case you need to
# define the input format:
output = pypandoc.convert_text('#some title', 'rst', format='md')
# output == 'some title\r\n==========\r\n\r\n'
答案 5 :(得分:0)
对于 vert依我使用的男人,
zcat $(man --path 1“ $ {command} | roffit>” $ {output}“ 2> “ / dev / null”
但是更完整的是,我使用html作为展示的男人:
oman“ $ {command}”
输出如下:
答案 6 :(得分:0)
我建议尝试Pandoc:
$ pandoc --from man --to html < input.1 > output.html
它生成的 HTML 既可读又可编辑,后者对我的用例很重要。
它还可以生成许多其他格式,例如 Markdown,这在您不确定要提交哪种格式时非常有用。
对这个问题的评论说 Pandoc 不能从 man
转换,但这似乎已经过时了。对于我的示例,当前版本 (2.13) 在将 man
转换为 html
方面做得不错。
此外,虽然公认的答案建议使用 groff -mandoc -Thtml
,但对我来说,它的效果不如 Pandoc。具体来说,我想将 old Flex-2.5.5 man page 转换为 html。 groff
(1.22.4 版)不幸地将所有代码示例弄乱了(没有缩进,没有固定宽度字体),使它们难以阅读,而 Pandoc 将它们作为 pre
部分带过来。此外,groff
输出充满了明确的内联样式,而 Pandoc 输出根本不使用 CSS,使其成为更好的编辑起点。
(现有的 answer 也提到了 Pandoc,我考虑将我的信息编辑到其中,但我想多谈谈我使用它的体验。)