【问题标题】:Redirect python script output to grep将python脚本输出重定向到grep
【发布时间】:2014-05-30 23:57:25
【问题描述】:

有一个构建cocos2dx-project的python脚本。当它运行时,它会打印出所有警告和错误消息。但我只想得到那些包含“错误”的行。因此,我执行以下操作:

python ./build_native.py | grep "error"

但它仍然会打印所有内容,而不仅仅是“错误”行。

编辑:

如果需要脚本文件的内容,可以看here

【问题讨论】:

  • 对于我刚刚编写的交替打印"hello""error" 20 次的脚本来说,上述内容非常有效。介意给我们一个 build_native.py 的输出样本吗?
  • 请查看我的编辑。实际上它不是脚本的直接输出,而是脚本调用的编译器。这会改变管道的工作方式吗?

标签: python c++ shell grep cocos2d-x


【解决方案1】:

您需要将stderr 重定向到stdout。只有这样 grep 才会过滤掉所有不包含“错误”的行

python ./build_native.py 2>&1 | grep "error" 

【讨论】:

  • 谢谢!我怎么会忘记?这就是在Windows中编程的糟糕程度。 :(
【解决方案2】:

如果你只是想通过管道传递错误,你可能想试试这个:

python ./build_native.py 2>&1 >/dev/null | grep "error" 

【讨论】:

  • 这将隐藏stdout 消息。
  • 你不想要这个吗?我的假设是 OP 不想在标准输出中包含错误,只在回溯中包含错误。
  • 我不知道 OP 想要什么。
猜你喜欢
  • 1970-01-01
  • 2018-06-12
  • 2017-08-31
  • 2018-01-11
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2014-10-31
  • 2019-08-21
相关资源
最近更新 更多