Como posso grep a saída de uma página man? [duplicado]

0

Estou procurando as informações da página de manual de um switch para um determinado comando.

Eu tentei por exemplo man sort | grep -A2 "-n," . Eu esperava algo como:

-n, --numeric-sort

    compare according to string numerical value

como saída e, em vez disso, obtive

Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information.

    
por Elder Geek 16.10.2017 / 16:09

2 respostas

2

Acontece que -e é a opção necessária para que grep proteja um padrão começando com um hífen (-). Assim, para obter o resultado esperado, o comando seria: man sort | grep -A2 -e "-n,"

que resulta em:

-n, --numeric-sort
              compare according to string numerical value

--
              sort according to WORD: general-numeric -g, human-numeric -h, month -M, numeric -n, random -R, version -V

       -V, --version-sort

E se eu quiser apenas as duas primeiras linhas de saída correspondente fornecendo exatamente o que eu esperava, eu tenho que direcioná-lo ainda mais em head como em man sort | grep -A2 -e "-n," | head -2

    
por Elder Geek 16.10.2017 / 16:09
1

Você também pode escapar do -n usando \

man sort | grep -A2 "\-n,"

Saída:

      -n, --numeric-sort
              compare according to string numerical value

--
              month -M, numeric -n, random -R, version -V

       -V, --version-sort
    
por Yaron 16.10.2017 / 16:14