Я намагаюся знайти команду для пошуку шаблону, що містить дефіси на всіх сторінках людини.
Я переглянув man man
і знайшов ці 3 варіанти:
-K
,--global-apropos
Шукайте текст на всіх сторінках керівництва. Це пошук грубої сили, і, ймовірно, потребує певного часу; якщо можете, вам слід вказати розділ, щоб зменшити кількість сторінок, які потрібно шукати. Пошукові терміни можуть бути простими рядками (за замовчуванням) або звичайними виразами, якщо використовується
--regex
параметр.
-w
,--where
,--path
,--location
Насправді не відображайте сторінки вручну, але друкуйте розташування (-ів) вихідних файлів nroff, які були б відформатовані.
-S list
,-s list
,t--sections=list
Список - це розділений двокрапкою або комами перелік розділів для впорядкування конкретних вказівок для пошуку. Ця опція перекриває
$MANSECT
змінну середовища. (-s
Правопис призначений для сумісності із Системою V.)
Я намагався об'єднати їх для пошуку шаблону, mark-modified-lines
який є варіантом перегляду, описаним у man bash
:
$ man -s1 -Kw mark-modified-lines
Але не знайдено жодної сторінки:
No manual entry for mark-modified-lines
І команда виходить з кодом 16
.
Я подумав, що, можливо, синтаксис команди був неправильним, але це не здається, оскільки ця команда правильно знаходить 5 чоловічих сторінок у моїй системі, що містить слово guitar
:
$ man -s1 -Kw guitar
/usr/share/man/man1/ffmpeg-all.1.gz
/usr/share/man/man1/ffserver-all.1.gz
/usr/share/man/man1/ffplay-all.1.gz
/usr/share/man/man1/ffmpeg-filters.1.gz
/usr/share/man/man1/ffprobe-all.1.gz
Я подумав, що, можливо, дефіси в цьому слові викликали проблему. В man bash
, я знайшов --regex
варіант , який описується наступним чином :
--regex
Показати всі сторінки з будь-якою частиною їх імен або їх описів, що відповідають кожному аргументу сторінки як звичайний вираз, як і в
apropos(1)
. Оскільки зазвичай немає розумного способу вибрати "найкращу" сторінку при пошуку регулярного виразу, ця опція передбачає-a
.
Я спробував використати цю опцію і замінити слово mark-modified-lines
на регулярний вираз mark.modified.lines
, де дефіси самі замінюються метахарактером, .
який повинен відповідати будь-якому символу:
$ man -s1 -Kw --regex 'mark.modified.lines'
Він досі не друкує жодну сторінку, в той час як я знаю, що текст написаний на bash
чоловічій сторінці.
Метахарактер .
у регулярному виразі, здається, аналізується як очікувалося, оскільки ця команда:
$ man -s1 -Kw --regex 'mark.mo'
Друкує:
/usr/share/man/man1/x11perfcomp.1.gz
/usr/share/man/man1/xditview.1.gz
І ці 2 manpages ( x11perfcomp
, xditview
) обидві відповідають регулярним виразом mark.mo
. Більш конкретно, man x11perfcomp
містить цей рядок:
Mark Moraes wrote the original scripts to compare servers.
^^^^^^^
І man xditview
містить цей рядок:
Mark Moraes (University of Toronto)
^^^^^^^
Однак man -s1 -Kw --regex 'mark.mo'
не друкує сторінку bash man:
/usr/share/man/man1/bash.1.gz
Хоча я і сподівався, що він містить цей рядок:
mark-modified-lines (Off)
^^^^^^^
Чи можливо шукати шаблон, що містить дефіси всередині довідкових сторінок?