¿Hay alguna manera de ver el documento `man` solo para la opción especificada de un comando


24

Si quiero saber el significado de wget -b, veo el manual man wgety luego busco la -bopción.

   -b
   --background
       Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Quiero obtener el resultado mediante un comando como man wget -b. (Por supuesto, esto no funciona).

¿Hay alguna manera similar de hacerlo posible?


wget -h | grep '\ -b'
Faheem Mitha el

Respuestas:


5

Puede redirigir la página de awkmanual y extraer la parte:

man wget | awk '/^ *-b *.*$/,/^$/{print}'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Esa parte es todo lo que está entre una -by una línea vacía.


1
{print}puede omitirse
Costas

Gracias, intenté usar con GNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)y awk version 20070501(OS X), pero solo funciona con 4.0.1.
ironsand

1
.*$también se puede omitir
Walter Tross

22

Si lo usa lesscomo buscapersonas para el hombre, puede intentarlo

LESS="+/^\s+-b" man wget

dónde

  1. +símbolo para ejecutar la siguiente operación después de lessabrir
  2. / comando para iniciar la búsqueda
  3. ^\s+-bregexp para que coincida -bdesde el inicio de la línea

Entonces, si lo desea, puede organizar la función adecuada para shell

function rman {
#USAGE: rman programm.name option.to.search (with "-" symbol)
LESS="+/^\s+$2" man "$1"
}

y agregarlo ~/.bashrcpor ejemplo.


Esto no funciona para mí, creo que porque no va a hacer una combinación de
varias líneas

14

Cuando ejecute man command, puede presionar /y luego ingresar el texto sin formato para buscar. Por ejemplo, escriba /-by saltará a la primera instancia de -ben el texto.


@drewbenn Oh, bien. Siempre he presionado /+ enter para continuar.
esponjoso

10

Escribí un pequeño guión para hacer esto llamado él , por ejemplo he wget -b.

La estrategia básica es: buscar la opción (p -b. Ej. ) Como la primera palabra en una línea, luego imprimir hasta el siguiente encabezado o la siguiente línea con sangría coincidente.

Si no puede usar eso, puede obtener algo similar usando basic sed, por ejemplo

man wget | sed -ne '/^  *-b/,/^$/p'

También su script desc es muy útil.
Pandya

Simplemente decidí cambiarle el nombre a he, como en short help, más he/ man.
Mikel

Actualizado para trabajar con el nuevo ejemplo wget -b,.
Mikel

3

Yo uso el siguiente script que se conecta a explicahell.com . Lo copié de reddit hace algún tiempo:

#!/bin/bash
cmd=$1
shift
args=$*
args=${args/ /+}
w3m -dump "http://explainshell.com/explain/$cmd?args=$args"

Lo nombré rmany lo puse en mi $PATH. Uso para wget -b:

$ rman wget -b    
[logo]

  • about
  •
  • [                    ]

wget(1) -b

The non-interactive network downloader

-b
--background
    Go to background immediately after startup.  If no output file is specified via the -o, output is
    redirected to wget-log.

source manpages: wget

Puede ajustar este script un poco para no mostrar basura al principio.

EDITAR: Lo obtuve de aquí . Gracias al autor!


3
Es importante tener en cuenta que esto potencialmente documenta una implementación / versión diferente de los comandos de los instalados en la máquina.
Stéphane Chazelas

Además, no hay escapes y malas citas en el código.
l0b0

Sí, me preguntaba si debería enfatizar eso. Sin embargo, si una opción particular significa algo en un sabor del programa, generalmente significa lo mismo en otro sabor. Lo que es más frecuente es que faltan algunas opciones. Nuevamente, esta es solo mi experiencia.
Arkadiusz Drabczyk

@ l0b0: No escribí este código, no usaría bash en primer lugar
Arkadiusz Drabczyk el

0

Alternativamente, si su grepes GNU grep, puede usarlo de la siguiente manera:

man wget | grep -EA3 '^ *-b'

En el que -A(una extensión GNU) es para imprimir el número de líneas después de las líneas coincidentes (aquí 3). puede usar el número apropiado para una descripción completa.

Ejemplo:

$ man wget | grep -EA3 '^ *-b'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is
           redirected to wget-log.

$ man grep | grep -EA3 '^ *-A'
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing a  group  separator
              (--)  between  contiguous groups of matches.  With the -o or --only-matching option, this has no effect
              and a warning is given.

0

Para una experiencia de línea de comando, use la versión @Costas.

Para una versión ligera, manutiliza la misma interfaz de texto que less. Esto significa que puede usar los mismos comandos que less.

# open manual to wget
man wget

# search for -b
/-b

# use "n" to navigate to next version of -b until you find what you want
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.