¿Cómo grep los loggings para get una list de patrones y generar un informe?

Tengo un ejecutable de C ++ que escanea algunos de mis files y esos files tienen una identificación de usuario. Después de completar el escaneo, genera el siguiente file de logging (abc.log) esta manera:

 INFO [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:110) - checking file: "p1_weekly_1980_32_200003_5.data" with path: "/database/batch/p1_snapshot/p1_weekly_1980_32_200003_5.data" WARN [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgr.cc:389) - Failed to upsert attribute for uuid 45576752 with value badge_leaf_cat and status -2 WARN [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgr.cc:389) - Failed to upsert attribute for uuid 870206432 with value badge_leaf_cat and status -2 INFO [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:120) - golden_file: /database/batch/p1_snapshot//p1_weekly_1980_32_200003_5.data is valid INFO [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:110) - checking file: "p1_weekly_1980_13_200003_5.data" with path: "/database/batch/p1_snapshot/p1_weekly_1980_13_200003_5.data" WARN [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgr.cc:389) - Failed to upsert attribute for uuid 876269533 with value badge_leaf_cat and status -2 WARN [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgr.cc:389) - Failed to upsert attribute for uuid 17256973 with value badge_leaf_cat and status -2 WARN [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgr.cc:389) - Failed to upsert attribute for uuid 830173693 with value badge_leaf_cat and status -2 INFO [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:120) - golden_file: /database/batch/p1_snapshot//p1_weekly_1980_13_200003_5.data is valid INFO [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:110) - checking file: "p1_weekly_1980_0_200003_5.data" with path: "/database/batch/p1_snapshot/p1_weekly_1980_0_200003_5.data" ERROR [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgrUtil.cc:493) - failed reading user id: 18446744073135142816 num attributes: 0 seeing 1 bad records from 365 records ERROR [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgrUtil.cc:493) - failed reading user id: 18446744073698151136 num attributes: 0 seeing 2 bad records from 595 records ERROR [0x7faff2b32a00] (/home/david/abc/golden/mmap/KKLFileMgrUtil.cc:493) - failed reading user id: 18446744072929739296 num attributes: 0 seeing 3 bad records from 1214 records ERROR [0x7faff2b32a00] (/home/david/abc/golden/mmap/mapper_check/mapper_check.cc:117) - golden_file: /database/batch/p1_snapshot//p1_weekly_1980_0_200003_5.data is corrupt 

Ahora necesito grep los loggings anteriores y averiguar cuántos files se han escaneado, cuántos usuarios han fallado, y qué files están dañados.

  • Para la cantidad de files que ha escaneado, necesito search checking file palabras del checking file en cada línea y en base a eso boost el recuento de la cantidad de files que ha escaneado.
  • Por la cantidad de identidades de usuario únicas que fallaron, necesito search palabras de failed reading user id en una línea y en base a eso boost el recuento y luego proporcionar la list de las identificaciones de usuario que fallaron.
  • Si alguna identificación de usuario falló, significa que el file estará dañado y que contenía esa identificación de usuario, así que necesito search la palabra is corrupt en cada línea y encontrar el nombre de file que está dañado. En general, esta database/batch/p1_snapshot//p1_weekly_1980_0_200003_5.data files database/batch/p1_snapshot//p1_weekly_1980_0_200003_5.data está dañada.

Y a continuación está la respuesta que quería ver después de escanear los loggings anteriores:

 Total Number of Files Scanned - 1000 Total Number of Unique User ID failed - 10000 Total Number of Files Corrupted - 5 List of Unique User Id's which are corrupt - UserId-A UserId-B Files which are corrupted - FileName-A FileName-B 

¿Cómo podría continuar y get el resultado anterior después de escanear los loggings usando grep?