我想逐步拆分文件。我的文件看起来像:
$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
答案 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