C'è modo di vedere il documento `man` solo per l'opzione specificata di un comando


24

Se voglio conoscere il significato di wget -b, vedo il manuale di man wget, quindi cerco l' -bopzione.

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

Voglio ottenere il risultato con un comando simile man wget -b. (Naturalmente questo non funziona.)

Esiste un modo simile per renderlo possibile?


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

Risposte:


5

È possibile reindirizzare la manpage awked estendere 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.

Quella parte è tutto ciò che si trova tra una -be una linea vuota.


1
{print}può essere omesso
Costas il

Grazie, ho provato a usare con GNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)e awk version 20070501(OS X), ma funziona solo con 4.0.1.
Feronsand

1
.*$può anche essere omesso
Walter Tross,

22

Se usi lesscome cercapersone per uomo puoi provare

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

dove

  1. +simbolo per eseguire l'operazione successiva dopo l' lessapertura
  2. / comando per iniziare la ricerca
  3. ^\s+-bregexp per abbinare -bdall'inizio della riga

Quindi, se ti piace, puoi organizzare la funzione appropriata per la shell

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

e aggiungilo ~/.bashrcad esempio.


Questo non funziona per me, penso perché non farà corrispondenze multilinea
rb612

14

Quando si esegue man commandè possibile premere /e quindi immettere il testo normale da cercare. Ad esempio, digitare /-be passerà alla prima istanza di -bnel testo.


@drewbenn Oh, bello. Ho sempre premuto /+ invio per continuare.
soffice

10

Ho scritto una piccola sceneggiatura per farlo chiamata lui , ad es he wget -b.

La strategia di base è: cercare l'opzione (ad es. -b) Come prima parola su una riga, quindi stampare fino all'intestazione successiva o alla riga successiva con rientro corrispondente.

Se non puoi usarlo, puoi ottenere qualcosa di simile usando di base sed, ad es

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

Anche il tuo script desc è molto utile.
Pandya,

Ho appena deciso di rinominarlo in he, come in short help, più he/ man.
Mikel,

Aggiornato per funzionare con il nuovo esempio wget -b,.
Mikel,

3

Uso il seguente script che si collega a spiegahell.com . L'ho copiato da reddit qualche tempo fa:

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

L'ho chiamato rmane l' ho inserito nel mio $PATH. Utilizzo per 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

Puoi modificare un po 'questo script per non mostrare la spazzatura all'inizio.

EDIT: L'ho preso da qui . Grazie all'autore!


3
È importante notare che questo potenzialmente documenta un'implementazione / versione diversa dei comandi da quelli installati sulla macchina.
Stéphane Chazelas,

Inoltre, nel codice non ci sono escape e quotazioni errate.
l0b0,

Sì, mi chiedevo se avrei dovuto enfatizzarlo. Tuttavia, se una particolare opzione significa qualcosa in un sapore del programma, di solito significa lo stesso in un altro sapore. Ciò che è più spesso è che mancano alcune opzioni. Ancora una volta, questa è solo la mia esperienza.
Arkadiusz Drabczyk,

@ l0b0: non ho scritto questo codice, non
userei

0

In alternativa, se la tua grepè la GNU grep, puoi usarla come segue:

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

In quale -A(un'estensione GNU) è per stampare il numero di righe dopo aver abbinato le righe (qui 3). puoi utilizzare il numero appropriato per la descrizione completa.

Esempio:

$ 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

Per un'esperienza da riga di comando, utilizzare la versione @Costas.

Per una versione leggera, manutilizza la stessa interfaccia di testo di less. Questo significa che puoi usare gli stessi comandi di 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.