【发布时间】:2014-08-21 16:30:23
【问题描述】:
我有一个在最后一行记录失败次数的测试文件。我通过检查这条线来确定测试是否通过。由于错误,通过的测试总是会失败。传递的行如下所示:
FAILED : - Failures = 1
我迄今为止有效的代码是:
if [[ $(tail -n 1 temp.txt) != "FAILED : - Failures = 1" ]]; then
echo "FAILED"
fi
但是,在不同的软件分支中,'FAILED' 已被替换为 'WARNING',例如
WARNING : - Failures = 1
我正在尝试编写一个正则表达式来 OR 单词 'WARNING' 和 'FAILED' 但到目前为止它不起作用。
【问题讨论】:
-
你可以试试
[A-Z]*。你不需要这样 OR 任何东西。但是这种方式会匹配任何大写字母字符。所以如果你有类似SUCCESS: - Failures =1的东西,它会匹配,但我非常怀疑这会发生。虽然我不确定bash本身是否可以处理这样的正则表达式。也许sed或awk会起作用
标签: regex bash if-statement logic