"grep"이 파이프 출력을 자르는 것을 중지하는 방법

"grep"이 파이프 출력을 자르는 것을 중지하는 방법

echo파이프 끝을 완전히 제거하는 대신 현재 출력에 추가하는 방법이 있습니까 ? 예를 들어 cat및 의 출력을 유지 grep하고 동일한 파이프의 출력 끝에 "END OF OUTPUT"을 추가하는 방법은 다음과 같습니다 .

$ cat file.txt | grep 'foo' | echo "END OF OUTPUT"
something foo 
foo
foo something
END OF OUTPUT

cat -작동 방식 과 유사합니다 .

echo "START OF OUTPUT" | cat - file.txt

답변1

이와 같이:

{ grep foo file.txt; echo END OF OUTPUT; } > output.txt

하위 쉘을 시작하지 않고도 명령을 그룹화할 수 있습니다(Bourne 쉘 제외).

다음을 수행할 수 있습니다.

grep foo file.txt | cat - <(echo END OF OUTPUT) > output.txt

(ksh, bash 또는 zsh 사용) 그러나 이는 추가 이점 없이 더 많은 추가 프로세스와 파이프를 생성합니다.

답변2

서브셸을 사용하여 다음과 같이 출력을 그룹화합니다.

(grep foo file.txt; echo "END OF OUTPUT") > output.txt

답변3

이것은 당신이 원하는 것을 얻을 것입니다

$ cat file.txt | grep 'foo' ; echo "END OF OUTPUT"

관련 정보