Convertir todas las páginas de manual de Linux a texto/html o markdown
unix (4)
¿Hay alguna forma de convertir todas las páginas de manual de Linux a texto plano, html o markdown?
Necesito hacer esto para cada archivo man que haya instalado en mi sistema.
Hoy es tu dia de suerte. Alguien ya ha hecho esto por ti. http://linux.die.net/
Sí ... Para convertir a uno de ellos, digamos, hombre de hombre:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
Si desea que ''todos estén instalados en su PC'', simplemente realice una iteración a través de ellos. Para una salida diferente (texto, por ejemplo), use un ''dispositivo'' diferente (el argumento -T).
Por si acaso ... si la "iteración" era el verdadero problema, puedes usar:
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
Utilice el comando man -k ''''
podría listar todos los nombres de página de manual disponibles, lo que podría ser mejor que find
y zcat
los archivos de datos de la página de zcat
originales; Mientras tanto, el comando de man tiene una opción -T, --troff-device[=DEVICE]
que puede generar HTML de la sección y el nombre de la página de manual dada. Así que el siguiente script bash viene a convertir todas las páginas de manual disponibles en su Linux en archivos 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
En una intranet sin acceso a Internet que el servicio en línea de páginas de manual no está disponible, colocar estos archivos en su servidor HTTP estático, como Nginx con autoindex, es una buena opción, donde puede ser conveniente browse y presionar Ctrl + F
man -Hfirefox ls
abre la página de manual de "ls" directamente en Firefox