如何根据开始和结束字符串删除正在运行的Shell脚本的部分stdout?

问题描述 投票:0回答:1

我有一个shell脚本,其中调用了其他脚本,并在其中创建了新的进程。我不想在屏幕上看到输出日志的某些部分,因为它过多了。如果这是一个文本文件,我可以使用以下行删除该部分:

sed 's/String1.*String2//g'

但是,我猜想在运行脚本(连续日志)或什至通过cat工具接收日志时,日志会与EOF逐行发送。因此sed无法跟踪正则表达式。长话短说,我希望能够这样做以缩短测试运行的标准输出:

./test1 | sed 's/String1.*String2//g'

因此可以消除输出屏幕上几乎200条多余的日志行。

linux bash shell sed stdout
1个回答
0
投票
./test1 | perl -e 'while (<>) { print unless (/string1/ .. /string2/) }'
© www.soinside.com 2019 - 2024. All rights reserved.