Loading

grep失效问题排查

问题描述

使用grep过滤终端log输出获取有效信息,三方log库更新后方法失效,所有信息全量打印无法过滤。

解决思路

考虑新版本log将终端回显定向到stderr,而stderr为无buffer设计,内容直接输出终端,
因此程序打印不经过stdout的内容无法通过grep过滤。

具体实施

将程序的stderr重定向到stdin即可正常grep生效

./run_app.sh 2>&1 | grep "ERROR"

命令详解

在上述2>&1命令中:

  • 1代表stdout
  • 2代表stderr
  • >代表重定向,
  • &防止shell将1理解为file
  • >&连用代表并入(merge)

扩展阅读

Redirections (Bash Reference Manual)

posted @ 2022-07-21 14:05  azureology  阅读(847)  评论(0)    收藏  举报