linux: вывод строки в конце каждой строки вывода - PullRequest
0 голосов
/ 27 мая 2019

Я выполняю скрипт ниже

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

ИЛИ

Exceptions 6 java.lang.NullPointerException
Exceptions 48 java.sql.SQLException
Exceptions 64 excep.NotFoundException
Exceptions 671 exception.ParseErrorException
Exceptions 690 Exception

Пожалуйста, помогите мне достичь этой цели.

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Кажется, проще всего прикрепить ...| 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 на *)

0 голосов
/ 27 мая 2019

Yon может использовать -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 страницу для дополнительных параметров

...