하이픈으로 연결된 옵션에 대한 명령의 맨 페이지를 grep 의 사용법을

스크롤하지 않고 -iswitch in grep명령 의 사용법을 알고 싶다고 가정 해보십시오 . 해당 명령에 대한 사양이 필요하거나 적어도 화면에 먼저 표시됩니다. 그래서 방법? 당신이 말할 수 있듯이 일반적으로뿐만 아니라 grep -i.



답변

이 간단한 sed명령을 사용해보십시오

$ man grep | sed -n '/-i, --ignore-case/,+2p'
    -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

설명:

sed -n '/-i, --ignore-case/,+2p'

        |<-Search pattern->|

검색 패턴을 포함하는 행을 검색 패턴 행 바로 아래에있는 2 개의 행과 함께 인쇄합니다.

또는

아래처럼 검색 패턴에 플래그 만 제공하면됩니다.

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
       -i, --ignore-case
              Ignore  case  distinctions  in  both  the  PATTERN and the input
              files.  (-i is specified by POSIX.)

avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
       -V, --version
              Print  the version number of grep to the standard output stream.
              This version number should be included in all bug  reports  (see
              below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
       -F, --fixed-strings
              Interpret PATTERN as a  list  of  fixed  strings,  separated  by
              newlines,  any  of  which is to be matched.  (-F is specified by
              POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
       -G, --basic-regexp
              Interpret PATTERN  as  a  basic  regular  expression  (BRE,  see
              below).  This is the default.

빠른 액세스 를 위해이 스크립트를 .bashrc( $HOME/.bashrc)에 추가 할 수 있습니다 .

mangrep(){
    USAGE="mangrep <application> <switch>"
    if [[ "$#" -ne "2" ]]
      then
          echo "Usage: $USAGE"
      else
          man "$1" | sed -n "/ *"$2", -/,+3p"
    fi
}


답변

터미널에서 아래 명령을 입력하십시오.

man grep

그런 다음 슬래시 문자를 입력 /하고 검색을 쓰기 같은 -i, 다음에 Enter. 검색 문자열이 처음 나타날 때 커서를 놓습니다. 를 누르면 n커서가 다음 항목으로 이동합니다. Shift+를 누르면 n커서가 이전 항목으로 이동합니다.


답변

가장 간단한 접근 방식은 /@girardengo가 제안한대로 검색 하는 것이지만, 내가 찾은 grep대신 사용할 수도 있습니다 sed.

$ man grep | grep -A 1 '^ *-i'
   -i, --ignore-case
          Ignore  case  distinctions  in  both  the  PATTERN and the input
          files.  (-i is specified by POSIX.)

-A N수단 “일치 한 후 N 라인을 인쇄 할 수 있습니다. 그냥 트릭을 유사하게 다음 몇 줄, 얻을 Avinash의 sed 접근 방식을.


답변

manpres 내부 검색 기능을 사용하고 "s"찾고있는 키를 입력 한 다음 (-i의 경우) i를 입력 할 수 있습니다.


답변

또는이 사이트에서 사용자를 검색하도록 할 수 있습니다.

http://explainshell.com/explain?cmd=grep+-i

터미널 사용에서 브라우저로 약간 전환해야하지만 그 주변 에도 방법이 있습니다.


답변

내가 아는 가장 효율적인 방법은 man 페이지를 검색하는 -i것 입니다 (이 사이트는 내 코드를 렌더링하지 못하는 것 같습니다. 의미는입니다 <space><space><space>-i). 그것은 3 개의 공백 (더 많거나 적은 공백이 필요할 수 있음)과 찾고있는 플래그입니다. 그것은 거의 항상 내 경험에서 작동하며 작동하지 않는 경우 변형을 변경할 수 있습니다.

플래그의 실제 문서는 일반적으로 들여 쓰기 때문에 작동합니다. 일반적으로 앞에 공백이 하나뿐이므로 다른 섹션에서 플래그에 대한 다른 언급을 찾지 않습니다.


답변

모든 답변을 통해 괜찮을 수도 있지만 모든 문서가 아닌 문서에만 집중하고 있다고 생각합니다. 예를 들어, -igrep 문서 의 스위치 를 찾으려면 다음 을 수행하십시오.

info grep Invoking Command-line\ Options Matching\ Control

“grep”에 대한 모든 정보, “일치 제어”에 대한 특정 “명령 줄 옵션”을 “호출”하는 방법을 찾을 수 있습니다. 슬프게도 그것보다 더 깊은하지 않지만이있다 -i, -y, --ignore-case최초 25 선에, 당신이하지 않는 것이 합리적인 일이 모든 방법 아래로 스크롤합니다.

이 솔루션은보다 유연하며 모든 정보 페이지를 검색 할 수 있습니다.

info --apropos=--ignore-case
"(coreutils)join invocation" -- --ignore-case <1>
"(coreutils)uniq invocation" -- --ignore-case <2>
"(coreutils)sort invocation" -- --ignore-case
"(gettext)msggrep Invocation" -- --ignore-case, ‘msggrep’ option
"(grep)Matching Control" -- --ignore-case

( 너무 흔했기 때문에 --ignore-case대신에 사용해야 -i했지만 어떤 경우에도 출력을 정보로 처리 할 수 ​​있습니다)

이 경우 정보 페이지 이름과 정확한 섹션이 모두 있습니다. 아, 거의 잊어 버렸습니다 tab. 정보 페이지의 대부분 섹션을 통해 길을 갈 수도 있습니다 .