大きなログファイルから "テーブル"を抽出する必要があります。2つの繰り返しパターン間の行を抽出する
IMPRESSION DE LA TABLE TSTR
と、このラインの第4回発生によって:
--------- ---------------------------------------------------------------
私は私のテーブルのより正確な定義を見つけることができませんが、テーブルが含まれている行で区切られています。一例として、
、私のログファイルが含まれています
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
そして、私は取得したいと思います:
How to select lines between two patterns?
Extract lines between two patterns from a file
: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
--------- ---------------------------------------------------------------
私はでアイデアを見つけました
しかし、どれもパターンのn番目の出現を見つけることはできません。
また、他のテーブルを他の名前でファイルに保存しているので、抽出したくないことに注意してください。
は素晴らしい作品。しかし、パターン "------"は、目的のテーブルが手に入る前に複数回見つかるため、カウンターは役に立たないようです。 – Simpom
OK解決済み:「IMPRESSION ...」が見つかったときにc = 0に設定しました。 – Simpom
最初は、cを0に設定するのを忘れました。しかし、今は複数のもので動作するはずです。あなたのファイルを4回ファイルにコピーしてみました。 – JFS31