¿Cómo buscar todos los archivos man que contienen determinada palabra clave?

¿Cómo buscar todos los archivos man que contienen determinada palabra clave?

Quiero aprender a buscar un archivo dando el contenido que contiene como parámetro. Luego puedo aplicar la solución para buscar comandos aportados por Richard Stallman (a través de páginas de manual).

Respuesta1

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.

Conjunto:

man -wK 'Richard M Stllman'

Aunque las páginas de manual normalmente tienen solo Richard Stallman, con una cantidad variable de espacio entre las dos palabras, una expresión regular podría ser apropiada:

--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.

Entonces:

man --regex -wK 'Richard *Stallman' 

Respuesta2

Este comando le mostrará los nombres de los archivos man que contienen la palabra clave Stallman:

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

La salida en mi 15.10 comienza con:

/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

Luego, podrás navegar como de costumbre, con man cat, man comm, etc.

Respuesta3

Este método no busca una palabra clave en todas las páginas de manual, sino solo en el título y la breve descripción de cada página de manual. No será suficiente en su caso, pero será útil para buscar algo rápidamente. Si no arroja los resultados deseados, debe usar @philsf'srespuesta.

Puedes usar elaproposcomando para buscar rápidamente el título y la descripción de todas las páginas de manual instaladas para una palabra clave:

$ 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

Puede mostrar la descripción de una página de manual conocida usando whatis:

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

Como dije, este método no buscará en todo el cuerpo de la página de manual, por lo tanto apropos Stallmanno devuelve nada...

información relacionada