다음과 같은 텍스트 입력이 있습니다.
TOKEN=32141234134143
ERROR=this is an error
위의 두 줄은 동시에 나타나지 않습니다. TOKEN 또는 ERROR 중 하나이지만 둘 다는 아닙니다.
grep
위의 입력을 다음과 같이 사용합니다 .
cat input |grep TOKEN
오류가 있으면 아무것도 출력되지 않습니다. 내가 원하는 것은 텍스트가 무엇이든 grep은 정규식과만 일치한다는 것입니다.아니요필터 텍스트와 grep은 일치하는 항목이 없는 경우에만 0이 아닌 종료 코드를 반환합니다.
이것이 가능합니까, 아니면 이를 수행할 수 있는 다른 명령줄 도구가 있습니까?
편집하다: 나는 grep의 출력이 다음과 같기를 원합니다.모두일치하지 않는 줄을 포함하여 텍스트를 입력하세요.아니요-q
grep 옵션으로 제공되는 NONE 텍스트입니다 .
답변1
직업 같은데ack
(사용직접모델):
ack --passthru TOKEN input
또는 배포판에 따라
ack-grep --passthru --color TOKEN input
전체 입력을 인쇄하고, 일치 항목을 강조 표시하고, 1
일치 항목이 없으면 종료됩니다( 0
찾은 경우).
답변2
간단히:
grep -q TOKEN file && cat file
-q
예grep
조용한모델. 패턴이 발견되면 cat
파일의 전체 내용이 출력됩니다.