내용을 표시하지 않고 특정 텍스트가 있는 모든 매뉴얼 페이지를 나열하는 방법은 무엇입니까? [복사]

내용을 표시하지 않고 특정 텍스트가 있는 모든 매뉴얼 페이지를 나열하는 방법은 무엇입니까? [복사]

특정 문자열에 대해 모든 시스템 매뉴얼 페이지를 검색하고 싶지만 이 텍스트가 나타나는 매뉴얼 페이지 목록을 얻고 싶습니다. Google에서 반환한 결과의 처음 두 페이지는 내가 원하는 답변을 제공하지 않았습니다(해당 답변이 있는 경우).

설명하겠습니다.

hairpin이 단어가 나타나는 모든 매뉴얼 페이지를 보고 싶습니다 . 나는 계속해서 타이핑을 했고 man -K hairpin, 나온 내용은 ​​내가 타이핑하던 것과 비슷했습니다 man nmcli. 를 통해 이 매뉴얼 페이지를 종료하면 q화면에 다음이 나타납니다.

--Man-- next: bridge(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

여기에서 Ctrl+를 계속 입력하면 D위에 다음이 표시된 명령 프롬프트로 돌아갈 수 있습니다.

--Man-- next: bridge(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: lldptool-evb22(8) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: systemd.network(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: nm-settings(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: nm-settings-ifcfg-rh(5) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]
--Man-- next: systemd.directives(7) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

내가 묻고 있는 것은 아래와 같은 위치 목록을 얻을 수 있느냐는 것 man pages입니다. :hairpin

man -<some-option> -K hairpin
nmcli(1)
bridge(8)
lldptool-evb22(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

편집:
문장을 사용하여 Google을 검색하면 특정 검색어를 해결하는 결과가 항상 반환되는 것은 아닙니다. 이것은 분명히 이 질문의 경우이며 일부 사람들이 지적했듯이 실제로는 중복되었습니다.

그러나 Ubuntu 시스템에서 반환된 특정 출력을 표시하므로 삭제하지 않는 것이 가장 좋습니다. Ubuntu 사용자는 이 질문을 통해 도움을 받을 수 있습니다.

편집 2: 이제 이 질문을
검색하면 skip (Ctrl-D)Google 결과의 첫 번째 페이지에 표시되지만 이전에는 아무 것도 반환되지 않았습니다!

답변1

다음 -w옵션을 사용할 수 있습니다.

   -w, --where, --path, --location
          Don't actually display the manual pages, but do print the  loca‐
          tion(s) of the source nroff files that would be formatted.

이것은 귀하가 요청한 거의 내용을 반환합니다.

$ man -wK hairpin
/usr/share/man/man1/nmcli.1.gz
/usr/share/man/man8/ip-link.8.gz
/usr/share/man/man8/bridge.8.gz
/usr/share/man/man5/systemd.network.5.gz
/usr/share/man/man5/nm-settings.5.gz
/usr/share/man/man5/nm-settings-ifcfg-rh.5.gz
/usr/share/man/man7/systemd.directives.7.gz

충분하지 않은 경우 모양으로 구문 분석할 수 있습니다.

$ man -wK hairpin | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

마지막으로 이를 함수로 바꿀 수 있습니다. 쉘의 초기화 파일에 다음 행을 추가하십시오( ~/.bashrc예:).

function sman(){ man -wK "$@" | perl -pe 's#.*/([^/]+)\.(\d+)\.gz#$1($2)#'; }

그런 다음 다음을 실행할 수 있습니다.

$ sman hairpin
nmcli(1)
ip-link(8)
bridge(8)
systemd.network(5)
nm-settings(5)
nm-settings-ifcfg-rh(5)
systemd.directives(7)

관련 정보