grep a página man de um comando para opções com hífen

4

Quando eu faço grep na página man do comando find para correspondências com type , ele retorna muitos resultados de pesquisa que eu não quero. Em vez disso, quero usar um comando que retorne somente os resultados da pesquisa para -type .

O comando man find | grep -type não funciona. Ele retorna:

grep: invalid option -- 't'
    
por karel 18.11.2016 / 00:13

2 respostas

6

Se você deseja grep para um padrão que começa com um hífen, use -- antes do padrão especificado.

man find | grep -- -type

Se você quiser mais informações, por exemplo, toda a seção descrevendo uma opção, você poderia tentar usar Sed:

$ man find | sed -n '/-mindepth/,/^$/p'
   -mindepth levels
          Do  not apply any tests or actions at levels less than levels (a
          non-negative integer).  -mindepth  1  means  process  all  files
          except the command line arguments.

No entanto, isso não funcionará para todas as opções que você pode pesquisar. Por exemplo:

$ man find | sed -n '/^[[:space:]]*-type/,/^$/p'
   -type c
          File is of type c:

Não é muito útil. Pior, para algumas opções você poderia ser levado a pensar que leu todo o texto sobre a opção quando você realmente não tinha. Por exemplo, pesquisar -delete omite o AVISO muito importante contido como um parágrafo segundo nesse cabeçalho.

Minha recomendação é usar uma chamada padrão para man com o conjunto de variáveis de ambiente LESS . Eu uso bastante comumente nas minhas respostas neste site.

LESS='+/^[[:space:]]*-type' man find

Para saber mais sobre como isso funciona, consulte:

LESS='+/^[[:space:]]*LESS ' man less
LESS='+/\+cmd' man less
LESS='+/\/' man less

Se você quiser apenas encontrar a opção de forma rápida e interativa na página do manual, aprenda a usar os recursos de pesquisa do less . E veja também:

por 18.11.2016 / 00:35
1

Ou canalize para less e alimente esse termo de pesquisa:

man 1 find | less -p ' -type'

(Isso pode falhar dependendo de exatamente o que less é alimentado, por exemplo, se -type estiver em negrito com backspaces.)

    
por 18.11.2016 / 00:30