1

В очень большом лог-файле у меня есть такие записи:

ПОТОК ВВОДИТСЯ somecompany.somepackage.datacontrol.provider.DataProvider @ c37ae61.release()

Единственное изменение между записями - это строка после @ и перед .release()(выделенная жирным шрифтом часть).

Существуют и другие записи, такие как следующие, которые необходимо отбросить в поиске:

ПОТОК ВВОДИТСЯ somecompany.somepackage.datacontrol.provider.DataProvider @ c37ae61.somethingelse()

Поэтому мой шаблон поиска должен заканчиваться на .release().

Как узнать количество таких вхождений в файле журнала (количество совпадающих строк), а также распечатать все соответствующие шаблоны?

PS: я использую среду Linux.

2 ответа2

1

Я думаю, что опция grep -c является эксклюзивной - невозможно объединить опцию -c с другой опцией для вывода совпадающих строк И счетчика. Таким образом, использование tee выводит совпадения И записывает совпадения во временный файл, а затем подсчитывает количество строк в файле.

grep 'FLOW ENTERING.*release()' k  | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp
-1

Вы можете использовать grep '.release()' file|wc -l

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .