Existe uma maneira de ver o documento 'man' apenas para a opção especificada de um comando

22

Se eu quiser saber o significado de wget -b , vejo o manual por man wget e, em seguida, pesquise a opção -b .

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

Eu quero obter o resultado por um comando como man wget -b . (Claro que isso não funciona.)

Existe uma maneira semelhante de tornar isso possível?

    
por ironsand 23.01.2015 / 14:57

6 respostas

5

Você pode redirecionar a página de manual para awk e extirpar a peça:

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.

Essa parte é tudo que está entre uma -b e uma linha vazia.

    
por 23.01.2015 / 15:41
21

Se você usa less como pager para homem, tente

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

onde

  1. + símbolo para executar a próxima operação após less abrir
  2. Comando / para iniciar a pesquisa
  3. ^\s+-b regexp para corresponder a -b do início da linha

Então, se você quiser, pode organizar a função adequada para o shell

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

e adicione-o em ~/.bashrc , por exemplo.

    
por 23.01.2015 / 15:11
12

Quando você executar man command , poderá pressionar / e, em seguida, digitar o texto simples a ser pesquisado. Por exemplo, digite /-b e ele saltará para a primeira instância de -b no texto.

    
por 23.01.2015 / 22:36
9

Eu escrevi um pequeno script para fazer isso chamado he , por exemplo he wget -b .

A estratégia básica é: pesquise a opção (por exemplo, -b ) como a primeira palavra em uma linha, depois imprima até o próximo cabeçalho ou a próxima linha com recuo correspondente.

Se você não puder usar isso, poderá obter algo semelhante usando o sed básico, por exemplo

man wget | sed -ne '/^  *-b/,/^$/p'
    
por 04.10.2014 / 08:21
3

Eu uso o seguinte script que se conecta a explicahell.com . Eu copiei do reddit há algum tempo atrás:

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

Eu o nomeei rman e coloquei em $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

Você pode ajustar um pouco esse script para não mostrar lixo no começo.

EDIT: Eu peguei de aqui . Graças ao autor!

    
por 23.01.2015 / 15:04
0

Como alternativa, se o seu grep for o GNU grep , você poderá usá-lo da seguinte maneira:

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

Em que -A (uma extensão GNU) é para imprimir o número de linhas após as linhas correspondentes (aqui 3 ). você pode usar o número apropriado para uma descrição completa.

Exemplo:

$ 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.
    
por 26.01.2015 / 13:31

Tags