我正在运行xcodebuild
命令:
xcodebuild -workspace MyWorkspace.xcworkspace \
-scheme "$XCODE_SCHEME_NAME" \
-archivePath $ARCHIVE_PATH \
-destination "$TEST_DESTINATION_DEVICE" \
test
这会产生大量非衍生输出,我可以使用与this answer xcodebuild | egrep -A 5 "(error|warning):"
类似的内容进行过滤
但是,我对所有测试输出感兴趣。测试输出在此行之后:
Test Suite 'All tests' started at 2014-09-29 14:04:54 +0000
那么有没有办法在上面的行之后grep或过滤掉所有内容?优先保留错误警告过滤器,即显示以下行:
'Test Suite * started at*'
行答案 0 :(得分:3)
另一种选择:
xcodebuild ... | sed '1,/^Test Suite/d'
答案 1 :(得分:1)
使用awk
:
xcodebuild ... | awk -v print_me=0 '/^Test Suite/ { print_me=1 }; print_me { print };'
最初,print_me
具有错误值,因此不会执行裸print
规则。一旦看到与“Test Suite started”行匹配的行,print_me
的值将切换为真值,并且从那时起将对每行执行print
规则。
答案 2 :(得分:1)
xcodebuild ... | grep -A 999999999 "search string"
答案 3 :(得分:1)
使用awk
:
xcodebuild ... | awk '/^Test Suite/{test=1; next}test'