如何过滤xcodebuild命令行输出?
从控制台运行xcodebuild
会为您带来非常详细的输出,并且我无法找到限制其输出的任何选项,以便仅显示警告和错误。如何过滤xcodebuild命令行输出?
我正在寻找一种方法来捕获xcodebuild
输出并对其进行过滤。它倾向于一种可以与管道一起工作的Python解决方案,但只要是基于命令行的解决方案,我就可以接受其他方法。
是否有任何工具已经能够做到这一点?
要看到的只是错误输出信息,重定向标准输出到/ dev/null的(一个特殊的文件,它作为一个黑洞)是这样的:如果你想捕捉的错误输出
xcodebuild > /dev/null
到一个文件,你可以这样做:
xcodebuild 2> ./build_errors.log
这对我来说是不够的。管道到/ dev/null只会告诉你一个构建失败,但你没有看到原因。理想情况下,我们只能看到错误和/或警告,而没有所有成功的编译器命令。
这基本上做这项工作:
xcodebuild | grep -A 5 error:
有一个红宝石的宝石称为xcpretty
。
它过滤了xcodebuild
的输出,并且还提供了不同的格式化程序和着色。
请投票了这个答案,这个工具是真棒,解决问题比grep好得多 – hariseldon78 2015-08-12 14:44:48
这个工具太棒了!为什么我以前没有发现它? – 2015-09-30 13:52:33
xcpretty是一个与xcodebuild结合使用的有用工具。 – AhiyaHiya 2016-11-17 14:40:01
我喜欢xcpretty
作为一个人来看待,但我需要在一个自动化的设置中发现构建错误以便在其他地方传播,并且我想确保我仅捕获相关信息。下面的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.
或'xcodebuild | egrep -A 5“(error | warning):”' – v01pe 2013-10-17 09:50:18
或'egrep'^(/.+:[0-9 +:[0-9] + :.(error | warning):| fatal | === )'-'也可以获得行说明xcodebuild将要做什么。 – PatchyFog 2015-04-30 22:39:21