
Quero aprender como pesquisar um arquivo fornecendo o conteúdo dele como parâmetro. Posso então aplicar a solução para procurar comandos contribuídos por Richard Stallman (por meio de páginas de manual).
Responder1
Deman 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 manual normalmente tenham apenas Richard Stallman
, com uma quantidade variável de espaço entre as duas palavras, 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'
Responder2
Este comando mostrará 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
Então, você pode navegar normalmente, com man cat
, man comm
, etc.
Responder3
Este método não pesquisa uma palavra-chave em todas as páginas de manual, mas apenas o título e a breve descrição de cada página de manual. Não será suficiente no seu caso, mas será útil procurar algo rapidamente. Caso não retorne os resultados desejados, você deverá usar @Filsfderesponder.
Você pode usar oapropos
comando para pesquisar rapidamente o título e a descrição de todas as páginas de manual instaladas em busca de 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 a descrição de uma página de manual conhecida usando whatis
:
$ whatis empathy
empathy (1) - GNOME multi-protocol chat and call client
Como eu disse, esse método não pesquisará todo o corpo da página de manual e, portanto, apropos Stallman
não retornará nada...