我要做的是:
启动一个连续输出文本的流程
将输出管道输出到两个命令:
到目前为止我尝试过的(不成功)是:
./myProgram | tee > (myLogger log.txt) | head > firstLines.txt
问题是,只要myProgram
完成,head
就会退出。
即使我在-i
命令中使用tee
,我也无法让myProgram继续运行。
由于记录器可能会将传入的文本追加到现有文件中,因此执行
head log.txt > firstLines.txt
在这种情况下不起作用。
答案 0 :(得分:1)
喜欢这样:
yes | awk 'FNR<4 {print >>"file"; close("file")} 1' | more
yes
是您的计划,file
是您将head
的输出发送到的地方,而more
是您的记录器。
答案 1 :(得分:1)
您可以使用awk
作为替代方法:
./myProgram |
awk 'NR<=10{print > "firstLines.txt"} NR>10{close("firstLines.txt")} 1' > log.txt