Estou tentando encontrar um comando para procurar um padrão que contenha hífens em todas as páginas de manual.
Eu olhei man mane encontrei estas 3 opções:
-K,--global-aproposProcure texto em todas as páginas de manual. Essa é uma busca por força bruta e provavelmente levará algum tempo; se puder, você deve especificar uma seção para reduzir o número de páginas que precisam ser pesquisadas. Os termos de pesquisa podem ser cadeias simples (o padrão) ou expressões regulares, se a
--regexopção for usada.
-w,--where,--path,--locationNa verdade, não exiba as páginas de manual, mas imprima os locais dos arquivos nroff de origem que seriam formatados.
-S list,-s list,t--sections=listLista é uma lista separada por vírgula ou vírgula de seções manuais específicas do pedido a serem pesquisadas. Esta opção substitui a
$MANSECTvariável de ambiente. (A-sortografia é para compatibilidade com o sistema V.)
Tentei combiná-los para procurar o padrão, mark-modified-linesque é uma opção de linha de leitura descrita em man bash:
$ man -s1 -Kw mark-modified-lines
Mas não encontra nenhuma página:
No manual entry for mark-modified-lines
E o comando sai com o código 16.
Eu pensei que talvez a sintaxe do comando estivesse errada, mas não parece, pois esse comando encontra corretamente as 5 páginas de manual no meu sistema que contêm a palavra 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
Eu pensei que talvez os hífens na palavra causassem um problema. Em man bash, encontrei a --regexopção descrita da seguinte maneira:
--regexMostre todas as páginas com qualquer parte de seus nomes ou descrições que correspondam a cada argumento de página como uma expressão regular, como em
apropos(1). Como geralmente não há uma maneira razoável de escolher uma página "melhor" ao procurar uma expressão regular, essa opção implica-a.
Tentei usar essa opção e substituir a palavra mark-modified-linespelo regex mark.modified.lines, onde os hífens são substituídos pelo metacaractere .que deve corresponder a qualquer caractere:
$ man -s1 -Kw --regex 'mark.modified.lines'
Ele ainda não imprime nenhuma página, enquanto eu sei que o texto está escrito na bashpágina de manual.
O metacaractere .no regex parece ser analisado conforme o esperado, pois este comando:
$ man -s1 -Kw --regex 'mark.mo'
Impressões:
/usr/share/man/man1/x11perfcomp.1.gz
/usr/share/man/man1/xditview.1.gz
E essas duas páginas de manual ( x11perfcomp, xditview) são correspondidas pelo regex mark.mo. Mais especificamente, man x11perfcompcontém esta linha:
Mark Moraes wrote the original scripts to compare servers.
^^^^^^^
E man xditviewcontém esta linha:
Mark Moraes (University of Toronto)
^^^^^^^
No entanto, man -s1 -Kw --regex 'mark.mo'não imprime a página do manual do bash:
/usr/share/man/man1/bash.1.gz
Enquanto eu esperava que sim, uma vez que contém esta linha:
mark-modified-lines (Off)
^^^^^^^
É possível procurar um padrão contendo hífens nas páginas do manual?