如何在 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
我有一个 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