Поиск числа строк для нескольких сжатых файлов в нескольких каталогах (не агрегировано)

Я пытаюсь выяснить количество строк, которые содержат строки «событие» и «тип». Файлы, которые я хочу найти, находятся в нескольких папках и заархивированы. Я могу получить суммарный счет того, что я ищу, но моя цель – показать счетчик для каждого файла. Это то, что я сейчас использую:

zcat / folder1 / {folderA, folderB, folderC} / folder2 / folder3 / result-2018-05-1 * | grep ‘event’ | grep ‘type’ | туалет

И мой вывод:

86446 

Но я хочу, чтобы мой вывод выглядел так:

 result-2018-05-10.log.gz: 1000 result-2018-05-11.log.gz: 3000 result-2018-05-12.log.gz: 20000 result-2018-05-13.log.gz: 4446 result-2018-05-14.log.gz: 12000 result-2018-05-15.log.gz: 10000 result-2018-05-16.log.gz: 15000 result-2018-05-17.log.gz: 5000 result-2018-05-18.log.gz: 6000 result-2018-05-19.log.gz: 10000 

Какие-либо предложения?

Только для двух тестов этого должно быть достаточно:

 zgrep -E -c 'event.*type|type.*event' /folder1/{folderA,folderB,folderC}/folder2/folder3/result-2018-05-1* 

Проверка, содержит ли строка type и event такая же, как проверка, если она содержит type за которым следует event или event за которым следует type . Это не будет хорошо масштабироваться, если потребуется 3-й тест.

Затем добавив что-то вроде | sed 's#^.*/##' | sed 's#^.*/##' должен дать точный результат в вопросе.


ОБНОВИТЬ:

Для чего-то более общего цикл кажется лучше, поэтому:

 for i in /folder1/{folderA,folderB,folderC}/folder2/folder3/result-2018-05-1*; do printf '%s: ' "$(basename "$i")" zcat < "$i" | grep 'filter1' | grep 'filter 2' | grep 'filter3' | wc -l done