grep --help 콘텐츠 방법

grep --help 콘텐츠 방법

라우팅 명령에 도움말 스위치(--help)를 사용하면 다음과 같은 출력이 생성됩니다.

root@theapprentice:~# route --help 
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

       route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
       route {-V|--version}                  Display version/author and exit.

        -v, --verbose            be verbose
        -n, --numeric            don't resolve names
        -e, --extend             display other/more information
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB

  <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

"add"라는 단어를 기반으로 두 번째 행만 검색하고 싶습니다.

route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

sed나 awk가 필요하지 않습니다.

나는 다음을 사용해 보았습니다.

route --help |grep add
route --help |grep -o add
route --help |grep -E add
route --help |grep -E -o add
route --help |grep -E -o "add"
route --help |grep -E -o {add|del|flush} 
route --help |grep -w {add|del|flush}  <<<this one did not even work

답변1

의 출력은 route --help표준 출력이 아닌 표준 오류에 기록됩니다. 해당 출력 의 경우 grep표준 출력으로 리디렉션해야 합니다.

$ route --help 2>&1 | grep -m1 'add'
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

이 구문은 2>&1셸에 다음과 같이 말합니다: "표준 오류에 기록된 내용을 표준 출력에 기록합니다."(기술적으로는 "파일 설명자 2에 기록된 내용을 파일 설명자 1이 쓰고 있는 위치에 기록합니다"를 의미합니다.) ") 중지 -m1하라고 지시합니다 . grep한 번 일치하는 항목을 검색하고 마지막 줄에서 세 번째 줄을 피하세요.

관련 정보