¿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?

hierro y
fuente
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.

caos
fuente
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.

Costas
fuente
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.

mullido
fuente
@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'
Mikel
fuente
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!

Arkadiusz Drabczyk
fuente
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.
Pandya
fuente
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
K3ARN3Y
fuente