Bash

如何阻止grep截斷管道輸出

  • February 13, 2013

有什麼方法可以echo在管道的末尾簡單地附加到目前輸出而不是全部刪除?例如,如何保留我的輸出catgrep在同一管道的輸出末尾添加“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

像這樣:

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

將命令分組而不啟動子 shell(Bourne shell 除外)。

你可以這樣做:

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

(使用 ksh、bash 或 zsh),但這會創建更多額外的程序和管道,而不會帶來額外的好處。

使用子shell對輸出進行分組,

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

引用自:https://unix.stackexchange.com/questions/64613