我在脚本下面执行
grep -i 'Exception' Exceptions.log |
sort |
uniq -c |
sort -n
并获得低于结果的结果(每次结果集将有所不同)
6 java.lang.NullPointerException
48 java.sql.SQLException
64 excep.NotFoundException
671 exception.ParseErrorException
690 Exception
实际上,我也想在每行的开头或结尾处打印文件名
6 java.lang.NullPointerException Exceptions
48 java.sql.SQLException Exceptions
64 excep.NotFoundException Exceptions
671 exception.ParseErrorException Exceptions
690 Exception Exceptions
OR
Exceptions 6 java.lang.NullPointerException
Exceptions 48 java.sql.SQLException
Exceptions 64 excep.NotFoundException
Exceptions 671 exception.ParseErrorException
Exceptions 690 Exception
请帮助我实现此目标。
答案 0 :(得分:0)
您可以使用-H
选项,例如grep -H <SEARCH>
-H, --with-filename
Print the file name for each match. This is the default when
there is more than one file to search.
检查man页以了解更多选项
答案 1 :(得分:0)
在流水线上添加...| sed -e 's/^/Exceptions.log /'
似乎是最容易的。但您可能会这样做:
awk '/Exception/ {a[$0 " " FILENAME]++}
END {for(i in a) print a[i], i}' Exceptions.log | sort -n
这将使您轻松搜索多个文件。 (例如,只需将Exceptions.log替换为*
)