如何过滤xcodebuild命令行输出?

从控制台运行xcodebuild将带给你非常详细的输出,而我无法find任何限制其输出的选项,以便只显示警告和错误。

我正在寻找一种方法来捕获xcodebuild输出并对其进行过滤。 它会更喜欢Python的解决scheme,将与pipe道工作,但我打开其他方法,只要他们是基于命令行的解决scheme。

是否有任何工具已经能够做到这一点?

为了仅看到错误输出消息,将标准输出redirect到/ dev / null(一个像黑洞一样工作的特殊文件),如下所示:

  xcodebuild> / dev / null 

如果要将错误输出捕获到文件中,可以执行以下操作:

  xcodebuild 2> ./build_errors.log 

这对我来说是不够的。 pipe道到/ dev / null只会告诉你,一个构build失败,但你没有看到原因(S)为什么。 理想情况下,我们只能看到错误和/或警告,没有所有成功的编译器命令。

这基本上是做这个工作:

 xcodebuild | grep -A 5 error: 

有一个叫做xcpretty的Rubygem。

它过滤xcodebuild的输出,并提供不同的格式化和着色。

使用xcodebuild -quiet

根据xcodebuild手册页:

-quiet:除了警告和错误之外,不要打印任何输出。

奖金:没有其他必要的工具! (虽然我也喜欢xcodebuild | xcpretty

我用Travis CI构build,在4 MB日志之后,它会投诉。 这个论点解决了这个问题。

我喜欢xcpretty作为一个人来看待,但是我需要在一个自动化的环境中发现构build错误,以便在其他地方进行传播,我想确保我只捕获了相关的信息。 以下sed命令用于此目的:

 xcodebuild | sed -nE '/error:/,/^[[:digit:]] errors? generated/ p' 

输出:

 main.c:16:5: error: use of undeclared identifier 'x' x = 5; ^ main.c:17:5: error: use of undeclared identifier 'y' y = 3; ^ 2 errors generated. 

在这里输入图像说明

-quiet是现在做的最好的方法。