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


11

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

나는을 보고이 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)
^^^^^^^

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

답변:


15

man -K렌더링 된 형식이 아닌 매뉴얼 페이지의 소스 코드를 검색합니다 (로 표시 man). 하이픈은 인코딩 \-되므로 다음을 검색해야합니다.

man -s1 -Kw 'mark\-mo'

예, 이것은 다소 모호합니다. 매뉴얼 페이지 의 설명에 언급 것을, 옵션man-K

이렇게 하면 렌더링 된 텍스트가 아니라 매뉴얼 페이지 의 소스 가 검색 되므로 소스 파일의 주석과 같은 이유로 오 탐지가 포함될 수 있습니다. 렌더링 된 텍스트를 검색하면 속도가 훨씬 느려집니다.

그러나 이것을 올바르게 사용하려면 찾고있는 텍스트의 소스 표현을 알아야합니다.


1
모호한? 예. 또한 버그입니다.
kubanczyk

@ kubanczyk는 사양과 일치하지만 사양이 버그임을 동의합니다. ;-).
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.