linux:在每个输出行的末尾打印字符串

时间:2019-05-27 13:08:12

标签: linux solaris

我在脚本下面执行

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

请帮助我实现此目标。

2 个答案:

答案 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替换为*