【问题标题】:How to exclude error message from bash string如何从 bash 字符串中排除错误消息
【发布时间】:2023-02-18 15:27:43
【问题描述】:

我的 xubuntu 中有命令:

nvidia-settings -q gpucoretemp | grep '(user-xubuntu:0.0):' | sed 's/^.*: //'

我得到了结果:

libEGL warning: DRI2: failed to authenticate
46.

如果我尝试排除“libEGL 警告:DRI2:无法验证”:

nvidia-settings -q gpucoretemp | grep -v 'libEGL warning: DRI2: failed to authenticate' | grep '(user-xubuntu:0.0):' | sed 's/^.*: //'

结果是一样的。如何忽略“libEGL 警告:DRI2:无法验证”字符串?

【问题讨论】:

  • nvidia-settings -q gpucoretemp 2>/dev/null 将抑制 stderr 和此警告
  • @anubhava 是2 意思是错误信息?
  • 恩,那就对了。

标签: linux bash grep nvidia


【解决方案1】:

您可以先将 stderr 重定向到 stdout,然后使用 grep 过滤结果。

nvidia-settings -q gpucoretemp 2>&1 | grep -v 'libEGL warning: DRI2: failed to authenticate' | grep '(user-xubuntu:0.0):' | sed 's/^.*: //'

【讨论】:

  • 2>&1 使 grep -v 'libEGL warning: DRI2: failed to authenticate' 部分完全没有必要
  • 这不是真的。 2>&1 只是 stderr 到 stdout 的重定向。这样您就可以使用 grep 过滤输出,因为 grep 不会从管道接收 stderr 消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
相关资源
最近更新 更多