Como obter o parágrafo para determinada opção de comando imediatamente?

8

Por exemplo, em vez de todo o manual de apt-get , desejo pular para a opção -f do prompt do terminal imediatamente, sem usar a pesquisa por manpage.

    
por R S 31.03.2017 / 13:22

3 respostas

6

O pager padrão usado por man é less . Você pode passar o padrão de pesquisa ERE (expressão regular estendida) que less entende diretamente para ele por meio da variável de ambiente LESS , caso você faça o seguinte:

LESS='+/-f' man apt-get

Isso é exatamente o mesmo que passar /-f depois de fazer man apt-get .

Agora, isso realçaria todos os -f s na página man , para ir direto ao desejado, ou seja, opção -f , você pode aproveitar ERE para corresponder apenas às linhas que começam com espaços / guias, seguidas por -f :

LESS='+/^[[:blank:]]+-f' man apt-get

Embora isso possa ser feito aqui, mas ainda assim pode não ser preciso para todas as páginas, pois isso corresponderá a qualquer coisa que comece com -f após os espaços / guias iniciais. Ajuste o padrão um pouco para atender você precisa nesses casos.

Você pode criar uma função minúscula para passar o padrão de pesquisa e a página man para procurar como argumentos, se você fizer isso com frequência.

    
por heemayl 31.03.2017 / 16:38
9

Digite uma barra, a coisa que você está procurando e pressione enter. Você vai pular para a primeira ocorrência. Pressione N para ir para a próxima ocorrência e B para voltar. Então, neste caso:

/-f <enter>
    
por James 31.03.2017 / 13:28
2

Use sed para mostrar o parágrafo inteiro de uma opção que começa com um hífen. Para mostrar o parágrafo inteiro da opção -f imediatamente executando um único comando use:

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

Isso retorna o parágrafo inteiro para a opção -f em man apt-get , mas o comando acima pode ser melhorado eliminando a vírgula após -f para torná-lo mais geralmente útil da seguinte forma:

man apt-get | sed -n '/-f/,/^$/p'

Isso retorna vários parágrafos, a maioria dos quais você não deseja ler. Ao ler as primeiras linhas dos vários parágrafos, você pode ver que deseja mostrar apenas o parágrafo que contém a opção -f, --fix-broken . Faça o seguinte:

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

Isso retorna apenas a saída que você deseja ler. Este método funciona com qualquer outra opção que comece com um hífen, e também funciona geralmente para procurar opções que começam com um hífen em outros comandos além de apenas apt-get .

Mostrando informações adicionais com sed

Se a descrição de um parágrafo não fornecer informações suficientes, o comando a seguir mostrará o primeiro parágrafo igual ao comando anterior e os próximos parágrafos depois dele também.

LESS='+/^[[:space:]]*-f' man apt-get  

Os resultados deste comando mostram que os próximos parágrafos não são muito interessantes, mas para algumas opções os próximos parágrafos são interessantes também. É por isso que este é também um comando útil para saber.

    
por karel 01.04.2017 / 14:30