我想对不同的应用程序使用相同的管道,例如:
cat my_file | {
cmd1
cmd2
cmd3
}
Run Code Online (Sandbox Code Playgroud)
Cmd1 应该消耗部分输入。Cmd2 应该消耗另一部分等等。
但是,每个 cmd 都会吃掉更多的输入,然后它读取的内容确实需要适当的缓冲。
例如:
yes | nl | {
head -n 10 > /dev/null
cat
} | head -n 10
Run Code Online (Sandbox Code Playgroud)
来自第 912 行而不是第 11 行的输出。
Tee 不是一个好的选择,因为每个命令都应该消耗一部分标准输入。
有没有一种简单的方法可以让这个工作?