Я намагаюся знайти команду для пошуку шаблону, що містить дефіси на всіх сторінках людини.
Я переглянув 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)
^^^^^^^
Чи можливо шукати шаблон, що містить дефіси всередині довідкових сторінок?