하이픈이 포함된 패턴을 매뉴얼 페이지에서 검색하는 방법은 무엇입니까?

하이픈이 포함된 패턴을 매뉴얼 페이지에서 검색하는 방법은 무엇입니까?

모든 매뉴얼 페이지에서 하이픈이 포함된 패턴을 검색하는 명령을 찾으려고 합니다.

확인 man man하고 다음 3가지 옵션을 찾았습니다.

-K,--global-apropos

모든 매뉴얼 페이지에서 텍스트를 검색합니다. 이는 시간이 걸릴 수 있는 무차별 검색이므로 가능하면 검색해야 하는 페이지 수를 줄이기 위해 섹션을 지정해야 합니다. 검색어는 단순 문자열(기본값) 또는 정규식( --regex이 옵션을 사용하는 경우)일 수 있습니다.

-w, --where, --path,--location

실제로 매뉴얼 페이지를 표시하지는 않지만 포맷할 소스 nroff 파일의 위치를 ​​인쇄합니다.

-S list, -s list,t--sections=list

list는 검색할 주문별 수동 부품의 콜론 또는 쉼표로 구분된 목록입니다. 이 옵션은 $MANSECT환경 변수를 재정의합니다. (이 -s철자는 System V와의 호환성을 위한 것입니다.)

나는 그것들을 mark-modified-lines다음에 설명된 readline 옵션인 검색 패턴과 결합해 보았습니다 man bash.

$ man -s1 -Kw mark-modified-lines

하지만 페이지를 찾을 수 없습니다.

No manual entry for mark-modified-lines

명령은 code 로 종료됩니다 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-linesregex로 바꾸려고 시도했습니다 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)
^^^^^^^

하이픈이 포함된 패턴을 매뉴얼 페이지에서 검색할 수 있습니까?

답변1

man -K렌더링이 아닌 매뉴얼 페이지의 소스 코드를 검색합니다(그림 참조 man). 하이픈은 인코딩되어 있으므로 다음 \-을 검색해야 합니다.

man -s1 -Kw 'mark\-mo'

예, 매우 모호합니다.man페이지-K옵션 설명에 언급된

다음을 검색합니다.원천렌더링된 텍스트가 아닌 매뉴얼 페이지의 내용이므로 소스 파일 등의 주석으로 인해 오탐이 발생할 수 있습니다. 렌더링된 텍스트 검색 속도가 훨씬 느려집니다.

하지만 이를 올바르게 사용하려면 검색 중인 텍스트의 소스 표현에 대한 지식이 필요합니다.

관련 정보