我需要从大型日志文件中提取“表”。在两个重复模式之间提取行
IMPRESSION DE LA TABLE TSTR
,并通过这条线的第四发生:一个表由一个包含行分隔
--------- ---------------------------------------------------------------
我无法找到我的表的更精确的定义。
举个例子,我的日志文件中包含:
SOME
TEXT
BEFORE
IMPRESSION DE LA TABLE TSTR 1323
--------- ---------------------------------------------------------------
POSITION | INDICE | ARGUMENT
--------- ---------------------------------------------------------------
| TYPE | VALEUR | TYPE | VALEUR
--------- ---------------------------------------------------------------
1 | CHAINE | COMPTEUR1 | ENTIER | 0
2 | CHAINE | COMPTEUR2 | ENTIER | 0
3 | CHAINE | RHO_1 | TABLE | 5187
4 | CHAINE | RHO_2 | TABLE | 6029
--------- ---------------------------------------------------------------
ANY
OTHER
TEXT
FOLLOWS
而且我想获得:
IMPRESSION DE LA TABLE TSTR 1323
--------- ---------------------------------------------------------------
POSITION | INDICE | ARGUMENT
--------- ---------------------------------------------------------------
| TYPE | VALEUR | TYPE | VALEUR
--------- ---------------------------------------------------------------
1 | CHAINE | COMPTEUR1 | ENTIER | 0
2 | CHAINE | COMPTEUR2 | ENTIER | 0
3 | CHAINE | RHO_1 | TABLE | 5187
4 | CHAINE | RHO_2 | TABLE | 6029
--------- ---------------------------------------------------------------
我发现的想法在:
How to select lines between two patterns?
Extract lines between two patterns from a file
但它们都不允许找到模式的第n次出现。
还请注意,我有我的文件(与其他名称),我不想提取其他表。
的情况下,伟大的作品我之前没有其它表。但是在所需表格到达之前多次发现模式“------”,所以看起来计数器是无用的。 – Simpom
OK求解:当发现“IMPRESSION ...”时,我设置c = 0。 – Simpom
一开始我忘了将c设置为0.但现在它应该可以与多个工作。我尝试了将你的文件复制到一个文件中四次。 – JFS31