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"