一个脚本来列出所有的异常和其发生的数(A script to list all the except

2019-10-18 16:18发布

我有编码,其分析文件,并返回不同的结果的分析: GOODBADUnexpected exception :后面是不同的异常...我makefile运行此分析仪上的一组文件一个接一个的,并把整个结果在一个文件output.txt 。 所以output.txt样子如下:

file "f1.txt"
...
GOOD
file "f2.txt"
...
Unexpected exception : exception1
...
Unexpected exception : exception2
...

现在,我想编写一个shell脚本summary ,总结output.txt ,尤其是列出被提出什么异常,他们的出现次数。 它应该喜欢就好:

exception1 : 9
exception2 : 15
...

例外的顺序并不重要,(当然,如果是发生数进行排序,这将是更好)...

我知道grep "Unexpected exception" output.txt | wc -l grep "Unexpected exception" output.txt | wc -l将返回所有的异常出现的次数,但我需要知道每个提出的例外发生...

有谁知道怎么写这个summary脚本?

Answer 1:

您可以使用AWK:

awk -F ' : ' '$1=="Unexpected exception"{a[$2]++} END{for (i in a) print i,a[i]}' output.txt


Answer 2:

AWK很可能是您的最佳选择。 我强烈建议看的GNUAwk用户指南的详细信息,如AWK是像你这样的情况非常强大和有用。

这会做你想要(略多于对方的回答可读)什么?

awk '/Unexpected exception/ { for (i = 4; i <= NF; i++) freq[$i]++ } END { for (word in freq) printf "%s : %d\n", word, freq[word] }' output.txt

其中i = 4是你要使用的字符串(位置$1=Unexpected $2=exception $3=: $4=exception1 ,尝试将其更改为i = 2 ,看看你会得到什么。



文章来源: A script to list all the exceptions and their number of occurrence
标签: bash shell grep