2016-11-11 4 views
0

私は助けが必要です。私のダンプファイルにはさまざまなジョブがあり、ダンプからさまざまなジョブに対して2パターンの行をフェッチする必要があります。以下期待通りの結果を得られない2つのパターンの間の検索行

このようにダンプ

SCHEDULE A01G2A#J01GME2A01 
ON RUNCYCLE RULE2 "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA" 
ON RUNCYCLE CALENDAR1 LAST_DAY 
AT 2330 UNTIL 2345 +1 DAYS 
: 
A01A#J01G_R01 
OPENS A01GFCDB2A#"/tmp/idreme2a01_create_ob_ac.tkn" 
END 

からいくつかの行がダンプに仕事がたくさんあるです。私はコード

awk '/SCHEDULE A02A#J01GME2A01/ {flag=1;next} /END/ {flag=0}flag' [email protected] 

以下で使用している

END

は私がスケジュールA02A番号のJ01GME2A01にこのパターンからのラインを取りたい。しかし、それは同様にワードCALENDARでENDを検索して、私にラインo/pを与えるが、私の要求では、最初の行と行wihcihがOPENSで始まるまでの行が必要であるか、いくつかのanotehrの単語かもしれない。

は私誰もがあなたの太字のテキストは、あなたのawkコマンドで一致していないこの

答えて

0

で私を助けることができます。 SCHEDULEの後の英数字の値が各ジョブごとに異なると仮定しています。ここで

awk '/^SCHEDULE/,/^END$/ {print}' file

は、サンプルの実行です:

$ cat file 
SCHEDULE A01G2A#J01GME2A01 
ON RUNCYCLE RULE2 "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA" 
ON RUNCYCLE CALENDAR1 LAST_DAY 
AT 2330 UNTIL 2345 +1 DAYS 
: 
A01A#J01G_R01 
OPENS A01GFCDB2A#"/tmp/idreme2a01_create_ob_ac.tkn" 
END 
$ awk '/^SCHEDULE/,/^END$/ {print}' file 
SCHEDULE A01G2A#J01GME2A01 
ON RUNCYCLE RULE2 "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA" 
ON RUNCYCLE CALENDAR1 LAST_DAY 
AT 2330 UNTIL 2345 +1 DAYS 
: 
A01A#J01G_R01 
OPENS A01GFCDB2A#"/tmp/idreme2a01_create_ob_ac.tkn" 
END 
+0

こんにちはRitesh、ダンプではより多くのある2つのパターン間

印刷がすでに(awksed用)の機能に組み込まれています私も早くこのコマンドを試してみましたが、何とかこのコマンドのo/pに別のスケジュールと終了コマンドが来ています –

+0

@ PallviMahajanSapenあなたは 'SCHEDULE'を特定の仕事に特有のテキストに置き換えることができます – ritesht93

関連する問題