Answers:
对于此特定任务,您可以使用sed而不是head
- 或者您可以使用awk而不是head:
some_command | awk '{print} /search_term/{exit}'
打印行,但是,当您找到与搜索词匹配的行时,退出(并且在此之后不再处理任何行)。
您描述的问题的更一般的解决方案是
some_command | tee >(command2) | command3
要么
some_command | tee >(command2) >(command3)
这些可以使用bash,但可能没有太多其他的shell(包括sh)。
为您提供运行进程的管道的文件句柄。您可能知道,让您获取数据流并将其写入多个位置。>(command)commandtee
但是你的问题比你说的更复杂。你不是想做

你想要做的

其中head命令(对应C于图中)从“ some_command”()获取输入,A但也有一个从awk(B)的输出设置的命令行参数。我怀疑对此的一般解决方案会更棘手。
sed而不是head截断文本...但我仍然想知道它是否可以这样做。