Como procurar por todos os arquivos man que contenham determinada palavra-chave?

6

Eu quero aprender como procurar um arquivo, dando o conteúdo dentro dele como um parâmetro. Eu posso então aplicar a solução para procurar por comandos contribuídos por Richard Stallman (através de man pages).

    
por juggernaut1996 31.01.2016 / 12:00

3 respostas

10

Este comando irá mostrar-lhe os nomes dos arquivos man que contêm a palavra-chave Stallman :

zgrep -l Stallman /usr/share/man/man?/*

A saída no meu 15.10 começa com:

/usr/share/man/man1/cat.1.gz
/usr/share/man/man1/comm.1.gz
/usr/share/man/man1/ctags.1.gz
/usr/share/man/man1/ctags.emacs24.1.gz

Depois, você pode navegar normalmente, com man cat , man comm , etc.

    
por philsf 31.01.2016 / 12:07
5

De man man :

-K, --global-apropos
      Search for text in all manual  pages.   This  is  a  brute-force
      search,  and is likely to take some time; if you can, you should
      specify a section to reduce the number of pages that need to  be
      searched.   Search terms may be simple strings (the default), or
      regular expressions if the --regex option is used.

-w, --where, --location
      Don't actually display  the  manual  pages,  but  do  print  the
      location(s) of the source nroff files that would be formatted.

Combinado:

man -wK 'Richard M Stllman'

Embora as páginas de trabalho normalmente tenham apenas Richard Stallman , com uma quantidade variável de espaço entre as duas palavras, então um regex pode ser apropriado:

--regex
      Show all pages with any part of  either  their  names  or  their
      descriptions   matching   each   page   argument  as  a  regular
      expression, as with  apropos(1).   Since  there  is  usually  no
      reasonable  way  to  pick  a  "best"  page  when searching for a
      regular expression, this option implies -a.

Então:

man --regex -wK 'Richard *Stallman' 
    
por muru 01.02.2016 / 02:42
2

Este método não pesquisa todas as páginas de manual por uma palavra-chave, mas apenas o título e a breve descrição de cada manpage. Não será suficiente no seu caso, mas é útil procurar rapidamente algo. Se ele não retornar os resultados desejados, você deve usar @ philsf 's answer .

Você pode usar o comando apropos para pesquisar rapidamente o título e a descrição de todas as páginas de trabalho instaladas para uma palavra-chave:

$ apropos chat
chat (8)             - Automated conversational script with a modem
chattr (1)           - change file attributes on a Linux file system
empathy (1)          - GNOME multi-protocol chat and call client

Você pode exibir uma descrição conhecida da manpage usando whatis :

$ whatis empathy
empathy (1)          - GNOME multi-protocol chat and call client

Como eu disse, esse método não pesquisará o corpo inteiro da manpage, portanto apropos Stallman não retorna nada ...

    
por Byte Commander 31.01.2016 / 14:56