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)
command
tee
但是你的问题比你说的更复杂。你不是想做
你想要做的
其中head
命令(对应C
于图中)从“ some_command
”()获取输入,A
但也有一个从awk
(B
)的输出设置的命令行参数。我怀疑对此的一般解决方案会更棘手。
sed
而不是head
截断文本...但我仍然想知道它是否可以这样做。