我有这方面的一些统计数据。
2023-01-01 01:00:00 TOTAL MEMORY ALLOCATION CONSUMPTION:
2023-01-01 01:00:00 COMPONENT | USAGE (%)
2023-01-01 01:00:00 class.zzz.aaa.bbb | 32
2023-01-01 01:00:00 class.fff.aaa.ggg | 20
2023-01-01 01:00:00 TOTAL: 52% out of 100% allocated memory consumed
2023-01-01 01:00:00 TOTAL MEMORY ALLOCATION CONSUMPTION:
2023-01-02 01:00:00 COMPONENT | USAGE (%)
2023-01-02 01:00:00 class.xxx.aaa.bbb | 42
2023-01-02 01:00:00 class.bbb.aaa.zzz | 10
2023-01-02 01:00:00 class.zzz.xxx | 21
2023-01-02 01:00:00 class.xxx.sss.ggg | 5
2023-01-02 01:00:00 TOTAL: 78% out of 100% allocated memory consumed
2023-01-01 01:00:00 TOTAL MEMORY ALLOCATION CONSUMPTION:
2023-01-03 01:00:00 COMPONENT | USAGE (%)
2023-01-03 01:00:00 class.xxx.yyy.zzz | 10
2023-01-03 01:00:00 class.xxx.zzz.aaa | 20
2023-01-03 01:00:00 class.zzz.aaa.bbb | 30
2023-01-03 01:00:00 TOTAL: 60% out of 100% allocated memory consumed
并且我要详细列出最后一套统计数据(如上例,是最后的6行)。 如你所知,每个科的线路数量可以改变,但第一线和最后一行保持不变。 我正在考虑使用:
- "TOTAL" as an anchor point to grab the first and the last line of the wanted block of text
- (?s) mode to match all lines in between those two
我最后用这一条列载了<代码>(?m)^*? * ? 总共有* ,并用于在北海伦堡使用<条码>-P获得预期产出(In t有<条码>-E regex分机)(Intttts much有<>-E regex分机)。
tac con.log | grep -Po "(?m)^.*?TOTAL(?s).*?(?m)TOTAL.*?$" -m1 | tac
结果是产生了正确的产出
2023-01-01 01:00:00 TOTAL MEMORY ALLOCATION CONSUMPTION:
2023-01-03 01:00:00 COMPONENT | USAGE (%)
2023-01-03 01:00:00 class.xxx.yyy.zzz | 10
2023-01-03 01:00:00 class.xxx.zzz.aaa | 20
2023-01-03 01:00:00 class.zzz.aaa.bbb | 30
2023-01-03 01:00:00 TOTAL: 60% out of 100% allocated memory consumed
然而,在我的测试环境中,它使用了旧的 gr版(2.5.3<>>>>/代码,在我用正版<代码>3.6
>>的正轨9号运行的其他机器上测试了该版本。 我没有取得任何结果。 考虑到该校在以下网址也发挥了作用:regex101.com。 我认为,这可能是一个更细致的 gr。 这些更新的 gr鱼品种是否特别需要像这种 work鱼那样做,或者是否还有其他方式来取得这种结果(最后,它将被用作一种篮子)。