我需要從大型日誌文件中提取「表」。在兩個重複模式之間提取行
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