`tee`命令相当于* input *?

时间:2009-02-26 13:30:01

标签: console stdout stdin

unix tee 命令将标准输入拆分为stdout AND文件。

我需要的是相反的方法,将几个输入合并到一个输出 - 我需要连接两个(或更多)命令的标准输出。
不确定这个应用程序的语义应该是什么 - 让我们假设每个参数都是一个完整的命令。

示例:

>  eet "echo 1" "echo 2" > file.txt

应生成包含内容的文件

1
2

我试过

>  echo 1 && echo 2 > zz.txt

它不起作用。

旁注:我知道我可以将每个命令的输出附加到文件中,但我想一次性执行此操作(实际上,我想将合并的输出传递给另一个程序)。
另外,我可以滚动我自己,但每当我负担得起时我都很懒: - )

哦,是的,如果它在Windows中运行会很好(虽然我猜任何bash / linux风格的解决方案都能通过UnxUtils / msys /等工作)

3 个答案:

答案 0 :(得分:7)

尝试

( echo 1; echo 2 ) > file.txt

生成一个子shell并执行那里的命令

{ echo 1; echo 2; } > file.txt

也是可能的。这不会产生子shell(最后一个命令后的分号很重要)

答案 1 :(得分:1)

我想你想要的是并行运行两个命令,并将两个输出管道合并到另一个命令。

我愿意:

( echo 1 & echo 2 ) | cat

其中“echo 1”和“echo 2”是生成输出的命令,“cat”是将接收合并输出的命令。

答案 2 :(得分:-1)

echo 1 > zz.txt && echo 2 >> zz.txt

那应该有用。您所做的只是在彼此之后运行两个命令,其中第一个重定向到文件,然后,如果成功,则运行另一个命令,将其输出附加到您首先写入的文件的末尾