Поиск по определенному man-разделу во всех man-страницах

Я хотел бы искать в подразделе ФАЙЛЫ на всех страницах руководства.

Я не пробовал man -K FILES:resolv.conf и man -K -S FILES resolv.conf никоим образом

Как я могу это сделать?

4
задан 19 September 2012 в 17:46

4 ответа

Опция -S выбирает раздел руководства , причем руководство представляет собой всю коллекцию справочных страниц. Раздел руководства может быть 1 (исполняемые файлы), 2 (системные вызовы) и т. Д. Не раздел отдельной справочной страницы как таковой. Так, например,

man -K -S 3 resolv.conf

вернет страницу руководства для res_init (3), вызова библиотеки C, который относится к разделу 3, Вызовы библиотеки, но не страницы руководства для dig (1), которая принадлежит в раздел 1 (исполняемые файлы).

Так как это в любом случае грубый текстовый поиск, я бы, вероятно, сделал бы специальный поисковый скрипт, использующий zcat и sed, или, может быть, простой perl-скрипт.

РЕДАКТИРОВАТЬ: вот пример сценария, созданного как функция bash.

function mfind { find /usr/share/man/ -iname '*.gz' -exec zcat {} \; | perl -ne '/.SH NAME/ and $n=<STDIN>;/.SH '$2'/ and $c=1;$c and /'$1'/ and $n and print "$n" and $n=""' ; }

Использование:

mfind expression mansection

, например,

mfind utmp FILES

Ошибки: не учитывает /etc/manpath.config, вместо этого использует / usr / share / man. Дополнительные параметры недоступны.

0
ответ дан 19 September 2012 в 17:46

man -K FILES

Протестированный функционал под Ubuntu 12.04

Простой и эффективный.

ManFiles1

ManFiles2

ManFiles3

В вашем конкретном случае вы ищете :

man -K FILES "resolv.conf"

ManFiles4

0
ответ дан 19 September 2012 в 17:46

Я бы не сказал, что нет вариантов. Я пытался собрать консолидированный файл в формате .txt или .pdf полного ресурса man. Вариант, который я выбрал, был

man -a /bin/* > manList.txt

(все еще экспериментировал с ним для улучшения, очевидно). Я далеко не эксперт, поэтому у него есть свои изломы (в некоторых группах текста есть разделы символов, которые нельзя отобразить, я предполагаю что-то, связанное с кодировкой вокруг разрывов страниц, не уверен.) Однако, что касается вашего вопроса, это кажется возможным, что

man -a 5 /bin/* /sbin/* > {your_output_file}

будет по крайней мере работоспособным вариантом, пока вы не найдете что-то лучшее. Я проверил это, та же проблема кодирования, но данные там для доступа, просто нужно немного TLC. Тогда вы можете искать на досуге с TXT-редактором. Надеюсь, это поможет.

0
ответ дан 19 September 2012 в 17:46

Пожалуйста, подайте ошибку для этого, желательно в пакете man-db в Debian, но вы можете вместо этого подать ее в Ubuntu, если хотите. Я не обещаю в ближайшее время приступить к его реализации (я man-db upstream), но это интересная особенность в Solaris, о которой я не знал, и она будет время от времени использоваться.

0
ответ дан 19 September 2012 в 17:46

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

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