如何在 bash 中追加输出?

How to append output in bash?

我有一个 shell 命令可以生成基于行的输出。为了便于讨论,让我称之为 magic。对于它产生的任何输出,我怎样才能向它附加另一个值?我想在管道中进行。我尝试了很长时间 google 这个但没有任何运气。看来我必须缺少一些明显的方法来做到这一点。理想情况下,将有另一个名为 append 的 unix 命令,它作为标准输入给出任何其他命令的输出相同的输出及其参数。

我想象中的:

magic

这个returns:

apple
cherry
banana

magic | append taro

这个returns:

apple
cherry
banana
taro

append 命令是否已存在且名称不同?如果有,它叫什么?

最好的方法不是使用管道,而是使用 anubhava 的 { magic; echo 'taro'; }

然而,自从你问了一个管道,你就打开了潘多拉的可能性。

magic|sed '$ataro'

是第一个。

magic| awk '{print} END{print "taro"}'

第二。

或bash函数:

hop(){
    while read line; do
        echo $line
    done
    echo 
}

magic | hop taro

以此类推

正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。

您可以使用命令分组 { ...; } 将多个命令分组:

{ magic; echo 'taro'; }

如果您想将输出重定向到文件,请使用:

{ magic; echo 'taro'; } > outfile