我有一个场景,csv 文件具有以下值:
abcd FAILURE 7
abcd SUCCESS 12
efgh SUCCESS 3
efgh FAILURE 5
mnop SUCCESS 6
mnop SUCCESS 4
abcd FAILURE 5
efgh SUCCESS 2
mnop SUCCESS 1
abcd FAILURE 7
mnop SUCCESS 3
abcd FAILURE 5
初始 grep 使用 abcd/efgh/mnop 并带有失败或成功条件,然后我需要匹配条件的值
我需要这样的输出,请帮助我
例如 :
abcd FAILURE 7
abcd FAILURE 5
abcd FAILURE 7
abcd FAILURE 5
--------------------
abcd FAILURE **24**
abcd SUCCESS 12
------------------
abcd SUCCESS **12**
但我不想在条件下给出任何静态字符串。
提前致谢。
答案1
使用grep -c
选项来计算搜索字符串的出现次数。echo 输出文本并使用子 shell 进行 grep 计数。
echo "abcd FAILURE $(grep -c "abcd FAILURE" filename)"
echo "abcd SUCCESS $(grep -c "abcd SUCCESS" filename)"
答案2
也许你想要这样的东西:
awk '
BEGIN {
fail = suc = 0
}
$2 == "FAILURE" {
fail += $3
next
}
$2 == "SUCCESS" {
suc += $3
}
END {
printf "%s:%s\n%s:%s\n", "SUCCESS",suc,"FAILURE",fail
}' inputFile
文件输出:
SUCCESS:31
FAILURE:29