Recuperar una página de manual formateada desde la línea de comando [duplicar]

4
    

Esta pregunta ya tiene una respuesta aquí:

    

Intento exportar la página de manual de grep a grep.txt

    $ man grep > ~/desktop/grep.txt

Se muestra en código ilegible:

            GREP(1)                   BSD General Commands Manual                  GREP(1)

            NNAAMMEE
                 ggrreepp, eeggrreepp, ffggrreepp, zzggrreepp, zzeeggrreepp, zzffggrreepp -- file pattern searcher

            SSYYNNOOPPSSIISS
                 ggrreepp [--aabbccddDDEEFFGGHHhhIIiiJJLLllmmnnOOooppqqRRSSssUUVVvvwwxxZZ] [--AA _n_u_m] [--BB _n_u_m] [--CC[_n_u_m]]

¿Cómo obtener una página de manual formateada desde la línea de comandos?

    
pregunta JawSaw 27.03.2018 - 03:05

1 respuesta

6

Puede usar el siguiente comando de ejemplo para obtener una salida de texto sin formato con formato para una página de manual:

man grep | col -bx > ~/Desktop/grep.txt

Produce, por ejemplo:

GREP(1)                   BSD General Commands Manual                  GREP(1)

NAME
     grep, egrep, fgrep, zgrep, zegrep, zfgrep -- file pattern searcher

SYNOPSIS
     grep [-abcdDEFGHhIiJLlmnOopqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
          [-e pattern] [-f file] [--binary-files=value] [--color[=when]]
          [--colour[=when]] [--context[=num]] [--label] [--line-buffered]
          [--null] [pattern] [file ...]

Para automatizar el uso de, por ejemplo, man grep | col -bx > ~/Desktop/grep.txt comando en Terminal , por lo que puedes escribir, por ejemplo. mant grep , u otro comando , puede incluirse en una función bash ubicada en su archivo .bash_profile .

Normalmente prefiero tener mis páginas de manual en formato PDF , sin embargo, he modificado el manp función bash que utilizo en mi archivo .bash_profile para trabajar con texto sin formato como, mant .

Para páginas de manual de texto simple:

function mant () 
{ 
    mpdir="$HOME/Documents/Manual Pages"
    [[ ! -d $mpdir ]] && mkdir -p "$mpdir"
    if [[ ! -z $1 ]]; then
        if [[ ! -f $mpdir/$1.txt ]]; then
            man "$1" | col -bx > "$mpdir/$1.txt"
            open -e "$mpdir/$1.txt"
        else
            open -e "$mpdir/$1.txt"
        fi
    else
        printf '  Error: Missing argument!...\n  Syntax: mant command_name\n  Example: mant man\n'
    fi
}

Para páginas de manuales en PDF:

function manp () 
{ 
    mpdir="$HOME/Documents/Manual Pages"
    [[ ! -d $mpdir ]] && mkdir -p "$mpdir"
    if [[ ! -z $1 ]]; then
        if [[ ! -f $mpdir/$1.pdf ]]; then
            man -t "$1" | pstopdf -i -o "$mpdir/$1.pdf"
            open "$mpdir/$1.pdf"
        else
            open "$mpdir/$1.pdf"
        fi
    else
        printf '  Error: Missing argument!...\n  Syntax: manp command_name\n  Example: manp man\n'
    fi
}

Para agregar una o las funciones bash que se muestran arriba a su archivo .bash_profile , en Terminal use el siguiente comando :

nano "$HOME/.bash_profile"

Luego copie y pegue función (es) en el archivo .bash_profile , luego guarde el archivo y salga nano presionando las siguientes teclas:

  • Control + X
  • Y
  • Enter

Cierre y vuelva a abrir la aplicación Terminal , no solo la ventana, y estará listo para comenzar.

Para la página de manual predeterminada en Terminal , por ejemplo:

man grep

Para una página de manual de archivo de texto sin formato, por ejemplo:

mant grep

Para una página de manual de un archivo PDF, por ejemplo:

manp grep

Con las funciones bash , si no existe un archivo para el comando dado, se crea y se abre. Si el archivo del comando ya existe, se acaba de abrir. De esta manera, puede acceder fácilmente a la página del manual en el formulario que desee mientras esté en Terminal .

Si desea colocar los archivos en una ubicación diferente, cambie la parte de ruta de la siguiente línea de código según corresponda:

mpdir="$HOME/Documents/Manual Pages"

El resto del código que se encuentra dentro es tokenizado para usar $mpdir para la ubicación de los archivos .

Como nota adicional, si solo desea la página del manual completo para un comando , en una ventana Terminal , que es fácilmente desplazable, puede hacer lo siguiente. siguiendo ...

Simplemente escriba el nombre del comando por sí mismo, luego haga clic con el botón derecho sobre él y seleccione: Abrir la página del hombre

Esto es mejor que escribir, por ejemplo. man grep y presionando ingrese , porque es totalmente desplazable y no necesita navegar usando secuencias de teclas como se define en la utilidad less comando utilizada como paginador por man .

    
respondido por el user3439894 27.03.2018 - 03:44

Lea otras preguntas en las etiquetas