Как искать все файлы человека, которые содержат определенное ключевое слово?

Я хочу изучить, как искать файл путем предоставления содержания в нем в качестве параметра. Я могу затем применить решение искать команды, внесенные Richard Stallman (через страницы справочника).

8
задан 1 February 2016 в 05:48

3 ответа

Эта команда покажет вам имена файлов man-файлов, содержащих ключевое слово Столмен :

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

Вывод в моем 15.10 начинается с:

/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

Затем вы можете просматривать как обычно, используя man cat , man comm и т. Д.

11
ответ дан 23 November 2019 в 06:10

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

Комбинировано:

man -wK 'Richard M Stllman'

Хотя на страницах руководства обычно есть только Ричард Столлман с переменным количеством пробелов между двумя словами, поэтому регулярное выражение может уместно:

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

Итак:

man --regex -wK 'Richard *Stallman' 
11
ответ дан 23 November 2019 в 06:10

Этот метод не выполняет поиск по всем страницам руководства по ключевому слову, а только по заголовку и краткому описанию каждой страницы. В вашем случае этого будет недостаточно, но полезно быстро что-нибудь найти. Если он не возвращает желаемых результатов, вы должны использовать ответ на @ philsf .

Вы можете использовать команду apropos для быстрого поиска во всех заголовок и описание установленных страниц руководства для ключевого слова:

$ 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

Вы можете отобразить известное описание страницы руководства, используя whatis :

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

Как я уже сказал, этот метод не будет выполнять поиск по всему телу страницы руководства, поэтому по поводу Столлмана ничего не возвращает ...

3
ответ дан 23 November 2019 в 06:10

Другие вопросы по тегам:

Похожие вопросы: