我有一个使用XVFB的应用程序,以便无头运行 . 应用程序运行正常,但我确实得到大量难以捉摸的Xlib:扩展“RANDR”缺少显示“:1”错误 . 该错误确实没有任何后果,除了大量的错误用无用的信息填充我们的日志文件 . 我想做的是过滤掉那个字符串 .
我们运行生成日志文件,如下所示:
DISPLAY=":1" $PYBIN myScript.pyc > myLogfile.log 2>&1 &
我正在尝试将python脚本的输出传递给sed,过滤掉“Xlib:extension”RANDR“缺少显示”:1“',然后将结果写入myLogfile.log . 这就是我正在尝试的,但没有骰子:
DISPLAY=":1" $PYBIN myScript.pyc | sed -n "missing on display" > myLogfile.log
我在哪里将stderr重定向到stdout,以便它们都由sed处理?如何正确格式化REGEX?
谢谢!
3 回答
您可以使用
grep
代替:如果它只是“缺少显示”你想过滤掉,你可以使用grep -v这样:
&>
将所有输出重定向到bash / ksh下的STDOUT . 如果您正在运行另一个shell,那么您可能希望使用2>&1
.“2”是STDERR的文件描述符,所以我们说“将文件#2的输出发送到与文件#1”(STDOUT)相同的地址(&) .
使用
sed
,您可以使用模式和d flag:我正在使用
\
在多行上拆分命令 .