В очень большом файле журнала у меня есть записи вроде:
ВХОД ПОТОКА somecompany.somepackage.datacontrol.provider.DataProvider@c37ae61.выпускать()
Единственное различие между записями — это строка после @
и до .release()
(выделенная жирным шрифтом часть).
Существуют и другие записи, подобные следующим, которые необходимо исключить из поиска:
ВХОД ПОТОКА somecompany.somepackage.datacontrol.provider.DataProvider@c37ae61.что-то другое()
Итак, мой шаблон поиска должен заканчиваться на.release()
.
Как узнать количество таких случаев в файле журнала (количество совпадающих строк), а также распечатать все совпадающие шаблоны?
PS: Я использую среду Linux.
решение1
Я думаю, grep -c
что опция является исключительной - невозможно объединить опцию -c с другой опцией для вывода соответствующих строк.Иколичество. Таким образом, использование tee выводит совпаденияИзапишите совпадения во временный файл, а затем подсчитайте количество строк в файле.
grep 'FLOW ENTERING.*release()' k | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp
решение2
вы можете использовать
grep '.release()' file|wc -l