我该如何将多个命令的标准输出导入到单个命令中?例如:
我希望能够在单个命令行上使用管道运行以下所有命令,并且不使用重定向到临时文件(如果可能的话)。有一个小细节意味着我不能使用括号;我希望最后一个命令是尾部喂送,因此我希望在接收到每一行 std-in 后发生 grep - 而不是等待 EOF 信号。
(cat my_program/logs/log.*;tail -0f my_program/logs/log.0) | grep "filtered lines"
我希望能够在单个命令行上使用管道运行以下所有命令,并且不使用重定向到临时文件(如果可能的话)。有一个小细节意味着我不能使用括号;我希望最后一个命令是尾部喂送,因此我希望在接收到每一行 std-in 后发生 grep - 而不是等待 EOF 信号。
tail -f
永远不会给你EOF,那么你为什么期望它呢?grep
在没有EOF的数据流上操作是可以的。 - glenn jackmantail -f
命令时它不起作用,但问题不在于grep
,因为tail -0f my_program/logs/log.0 | grep "filtered lines"
是可以工作的。所以我需要另一种方法来连接cat my_program/logs/log.*
和tail -0f my_program/logs/log.0
,这样我就需要另一种方式来等待 EOF。 - ChrisN