모든 매뉴얼 페이지 내에서 하이픈이 포함 된 패턴을 검색하는 명령을 찾으려고합니다.
나는을 보고이 man man세 가지 옵션을 찾았습니다.
-K,--global-apropos모든 매뉴얼 페이지에서 텍스트를 검색하십시오. 이것은 무차별 검색이며 시간이 걸릴 수 있습니다. 가능한 경우 검색해야하는 페이지 수를 줄이기 위해 섹션을 지정해야합니다. 검색어는 간단한 문자열 (기본값)이거나
--regex옵션을 사용하는 경우 정규식 일 수 있습니다.
-w,--where,--path,--location실제로 매뉴얼 페이지를 표시하지 말고 포맷 할 소스 nroff 파일의 위치를 인쇄하십시오.
-S list,-s list,t--sections=list목록은 검색 할 순서별 수동 섹션의 콜론 또는 쉼표로 구분 된 목록입니다. 이 옵션은
$MANSECT환경 변수를 대체합니다 . (-s맞춤법은 System V와의 호환성을위한 것입니다.)
나는 그것들을 결합 mark-modified-lines하여 readline 옵션 인 패턴을 검색하려고 시도 했다 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
그리고이 두 맨 페이지 ( 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 맨 페이지를 인쇄하지 않습니다.
/usr/share/man/man1/bash.1.gz
이 줄이 포함되어 있기 때문에 예상했지만
mark-modified-lines (Off)
^^^^^^^
매뉴얼 페이지 내부에 하이픈이 포함 된 패턴을 검색 할 수 있습니까?