2016-03-23 14 views
0

ファイルを段階的に分割したいと思います。私はインクリメンタル「パス」を持つファイルを持っていると思いファイルを段階的に分割する

$path { 
$name "path_sparc_ifu_dec_1" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U870/Y" ^ ; // (AND2X1_LVT) 
"U873/Y" v ; // (INVX1_LVT) 
"U872/Y" ^ ; // (NAND3X0_LVT) 
"U1045/Y" v ; // (NAND3X0_LVT) 
"U1046/Y" ^ ; // (NAND3X0_LVT) 
"U1063/Y" ^ ; // (OR3X1_LVT) 
"U1092/Y" ^ ; // (OR3X1_LVT) 
"U1095/Y" ^ ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 
$path { 
$name "path_sparc_ifu_dec_2" ; 
$transition { 
"dtu_inst_d[22]" ^ ; // (in) 
"U622/Y" v ; // (INVX16_LVT) 
"U870/Y" v ; // (AND2X1_LVT) 
"U873/Y" ^ ; // (INVX1_LVT) 
"U872/Y" v ; // (NAND3X0_LVT) 
"U1045/Y" ^ ; // (NAND3X0_LVT) 
"U1046/Y" v ; // (NAND3X0_LVT) 
"U1063/Y" v ; // (OR3X1_LVT) 
"U1092/Y" v ; // (OR3X1_LVT) 
"U1095/Y" v ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" v ; // (DFFX1_LVT) 
} 
} 
$path { 
$name "path_sparc_ifu_dec_3" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U782/Y" ^ ; // (AND2X1_LVT) 
"U781/Y" ^ ; // (AND2X1_LVT) 
"U632/Y" v ; // (INVX0_LVT) 
"U999/Y" ^ ; // (NAND4X0_LVT) 
"U1000/Y" v ; // (NAND2X0_LVT) 
"U1006/Y" ^ ; // (NAND4X0_LVT) 
"U1007/Y" ^ ; // (AND4X1_LVT) 
"prope_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 
. 
. 
. 

:私のファイルは次のようになります。 1番目のファイルには1番目のパスがあります。 2番目のファイルには1番目と2番目のパスがあります。 3番目のファイルには1番目、2番目、3番目のパスがあります。このインクリメンタルスプリットは、元のファイルの最後まで続きます。 (最大n)。

P1:

$path { 
$name "path_sparc_ifu_dec_1" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U870/Y" ^ ; // (AND2X1_LVT) 
"U873/Y" v ; // (INVX1_LVT) 
"U872/Y" ^ ; // (NAND3X0_LVT) 
"U1045/Y" v ; // (NAND3X0_LVT) 
"U1046/Y" ^ ; // (NAND3X0_LVT) 
"U1063/Y" ^ ; // (OR3X1_LVT) 
"U1092/Y" ^ ; // (OR3X1_LVT) 
"U1095/Y" ^ ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 

P2:

$path { 
$name "path_sparc_ifu_dec_1" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U870/Y" ^ ; // (AND2X1_LVT) 
"U873/Y" v ; // (INVX1_LVT) 
"U872/Y" ^ ; // (NAND3X0_LVT) 
"U1045/Y" v ; // (NAND3X0_LVT) 
"U1046/Y" ^ ; // (NAND3X0_LVT) 
"U1063/Y" ^ ; // (OR3X1_LVT) 
"U1092/Y" ^ ; // (OR3X1_LVT) 
"U1095/Y" ^ ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 
$path { 
$name "path_sparc_ifu_dec_2" ; 
$transition { 
"dtu_inst_d[22]" ^ ; // (in) 
"U622/Y" v ; // (INVX16_LVT) 
"U870/Y" v ; // (AND2X1_LVT) 
"U873/Y" ^ ; // (INVX1_LVT) 
"U872/Y" v ; // (NAND3X0_LVT) 
"U1045/Y" ^ ; // (NAND3X0_LVT) 
"U1046/Y" v ; // (NAND3X0_LVT) 
"U1063/Y" v ; // (OR3X1_LVT) 
"U1092/Y" v ; // (OR3X1_LVT) 
"U1095/Y" v ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" v ; // (DFFX1_LVT) 
} 
} 

P3:

$path { 
$name "path_sparc_ifu_dec_1" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U870/Y" ^ ; // (AND2X1_LVT) 
"U873/Y" v ; // (INVX1_LVT) 
"U872/Y" ^ ; // (NAND3X0_LVT) 
"U1045/Y" v ; // (NAND3X0_LVT) 
"U1046/Y" ^ ; // (NAND3X0_LVT) 
"U1063/Y" ^ ; // (OR3X1_LVT) 
"U1092/Y" ^ ; // (OR3X1_LVT) 
"U1095/Y" ^ ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 
$path { 
$name "path_sparc_ifu_dec_2" ; 
$transition { 
"dtu_inst_d[22]" ^ ; // (in) 
"U622/Y" v ; // (INVX16_LVT) 
"U870/Y" v ; // (AND2X1_LVT) 
"U873/Y" ^ ; // (INVX1_LVT) 
"U872/Y" v ; // (NAND3X0_LVT) 
"U1045/Y" ^ ; // (NAND3X0_LVT) 
"U1046/Y" v ; // (NAND3X0_LVT) 
"U1063/Y" v ; // (OR3X1_LVT) 
"U1092/Y" v ; // (OR3X1_LVT) 
"U1095/Y" v ; // (OA21X1_LVT) 
"illinste_ff_q_reg_0_/D" v ; // (DFFX1_LVT) 
} 
} 
$path { 
$name "path_sparc_ifu_dec_3" ; 
$transition { 
"dtu_inst_d[22]" v ; // (in) 
"U622/Y" ^ ; // (INVX16_LVT) 
"U782/Y" ^ ; // (AND2X1_LVT) 
"U781/Y" ^ ; // (AND2X1_LVT) 
"U632/Y" v ; // (INVX0_LVT) 
"U999/Y" ^ ; // (NAND4X0_LVT) 
"U1000/Y" v ; // (NAND2X0_LVT) 
"U1006/Y" ^ ; // (NAND4X0_LVT) 
"U1007/Y" ^ ; // (AND4X1_LVT) 
"prope_ff_q_reg_0_/D" ^ ; // (DFFX1_LVT) 
} 
} 

あなたは私がこの仕事をする方法を知って聞かせてもらえますか?どの言語(sed、awk、grep)でも大丈夫です。

ベスト、

Jaeyoung

答えて

0

私はawkを使用します。次のようにレコード区切り記号で再生できます。

awk '{file="P"NR".txt";print > file;close(file)}' RS='}\n}\n' ORS='}\n}\n' file 
0

gawkレスキュー!

$ awk -v RS="\n}\n}" 'NR==1{term=RT} 
          {a[NR]=$0} 
      END{for(i=1;i<NR;i++) 
        for(k=1;k<=i;k++) 
        print a[k] term > FILENAME"_"i}' file 
関連する問題