Ste*_*ano 6 linux bash logging pipe
我想要做的是:
启动一个连续输出文本的过程
管道输出到两个命令:
到目前为止我尝试过的(不成功)是:
./myProgram | tee > (myLogger log.txt) | head > firstLines.txt
问题是myProgram退出一旦head完成就退出.
即使我-i在tee命令中使用,我也无法让myProgram继续运行.
由于记录器可能会将传入的文本附加到现有文件,head log.txt > firstLines.txt
因此在这种情况下执行
将不起作用.
您可以使用awk以下方法来执行这两项操作:
./myProgram |
awk 'NR<=10{print > "firstLines.txt"} NR>10{close("firstLines.txt")} 1' > log.txt
Run Code Online (Sandbox Code Playgroud)