我有一个文本文件名“results”,它包含
[ PASSED ] 11 tests.
[ PASSED ] 590 tests.
[ PASSED ] 1231 tests.
[ FAILED ] 4 tests.
[ FAILED ] 500 tests.
我想添加通过的测试并存储到变量中。添加失败的测试,添加它们并存储到另一个变量中。
我该怎么做?
最佳答案
一种使用awk
的快速方法。
假设测试输出位于名为test.out
的文件中:
#!/bin/bash
npasses=$(<test.out awk '
/ PASSED / { total += $4 }
END { print total }')
echo number of passing tests: $npasses
<test.out
表示从awk
读取。test.out
将第4个字段追加到名为total的变量,但仅适用于与regex/ PASSED / { total += $4 }
匹配的行。PASSED
在文件末尾运行,并打印存储在END { print total }
中的值。