grep 결과를 반전시키는 방법

1803 단어 Bashgreptech

개요


grep 명령 정보
  • 반전 수송에 사용되는 방법
  • 종료 상태를 반전시키는 방법
  • 설명또 오류가 발생한 경우는 고려하지 않는다.

    출력 행 뒤집기


    일치하는 줄을 출력하지 않고 일치하지 않는 줄을 출력하려면 - v 옵션을 선택하십시오.
    $ printf "abc\nbcd\ncde\n"
    abc
    bcd
    cde
    $ printf "abc\nbcd\ncde\n" | grep b
    abc
    bcd
    $ printf "abc\nbcd\ncde\n" | grep -v b
    cde
    

    종료 상태 반전


    일치하는 줄이 있으면 0 이외의 끝 코드를 사용하고 일치하는 줄이 없으면 끝 코드 0을 사용합니다.

    입력을 한 줄로 가정하기


    입력이 한 줄이면, 이 줄이 조건에 부합되는지 여부에 따라 종료 코드를 결정합니다.
    따라서 -v 옵션을 추가하여 종료 상태를 반전할 수 있습니다.
    $ echo -n "abc" | grep -q c ; echo $?
    0
    $ echo -n "abc" | grep -q d ; echo $?
    1
    

    임의의 행을 입력할 때


    입력이 한 줄로 가정할 수 없는 경우
  • 입력은 0줄 가능
  • 입력은 두 줄 이상
  • 의 경우 종료 상태가 반드시 -v 옵션에서 반전되는 것은 아닙니다.다음은 반례다.
    $ echo -n "abc" | grep -q -v c ; echo $?
    1
    $ echo -n "abc" | grep -q -v d ; echo $?
    0
    
    $ echo -n | grep -q a ; echo $?
    1
    $ echo -n | grep -q -v a ; echo $?
    1
    
    종료 상태를 반전시키기 위해 파이프의 시작 부분에 있습니다!쓰면 돼.
    $ printf "abc\nbcd\ncde" | grep -q b ; echo $?
    0
    $ printf "abc\nbcd\ncde" | grep -q -v b ; echo $?
    0
    
    $ echo -n | grep -q a ; echo $?
    1
    $ ! echo -n | grep -q a ; echo $?
    0
    

    총결산


    grep 명령과 관련된 두 가지 반전을 설명했습니다.
  • grep의 -v 옵션으로 반전 출력
  • 케이스의 부식!에서 명령의 종료 상태 반전
  • 후자는 명령의 출력에 특정 문자열을 포함할 때 CI를 실패하게 하는 데 사용할 수 있다.

    환경을 확인하다


    문장의 명령 실행은 다음과 같은 환경을 사용했다
    $ printf "abc\nbcd\ncde" | grep -q b ; echo $?
    0
    $ ! printf "abc\nbcd\ncde" | grep -q b ; echo $?
    1
    

    좋은 웹페이지 즐겨찾기