逐步拆分文件

时间:2016-03-23 21:40:29

标签: awk sed split

我想逐步拆分文件。我的文件看起来像:

$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)
}
}
.
.
.

我想要的文件包含" path"增量。 第一个文件有第一个路径。第二个文件有第一和第二个路径。第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

2 个答案:

答案 0 :(得分:0)

我会使用awk。您可以使用记录分隔符,如下所示:

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

答案 1 :(得分:0)

<div> <h1> Name of Article</h1> <p>First Paragraph I want</p> <p>More Html I'm interested in</p> <h2> Subheading in the article I also want </h2> <p>Even more Html i want to pull out of the document.</p> </div> 救援!

gawk
相关问题