【发布时间】:2016-01-01 03:06:38
【问题描述】:
希望大家新年快乐!
我正在尝试交换文件特定块中的 2 列。文件格式为:
Startpoint: in11 (input port)
Endpoint: out421 (output port)
Path Group: (none)
Path Type: max
Point Incr Path
---------------------------------------------------------------
input external delay 0.00 0.00 r
in11 (in) 0.00 0.00 r
Ckt432/A[7] (TopLevel432b) 0.00 0.00 r
Ckt432/M1/A[7] (PriorityA) 0.00 0.00 r
Ckt432/M1/U7/Y (INVX1_RVT) 0.03 0.03 f
Ckt432/M5/U12/Y (OA21X1_RVT) 0.10 2.44 r
Ckt432/M5/Chan[3] (DecodeChan) 0.00 2.44 r
Ckt432/Chan[3] (TopLevel432b) 0.00 2.44 r
out421 (out) 0.00 2.44 r
data arrival time 2.44
---------------------------------------------------------------
(Path is unconstrained)
Startpoint: in37 (input port)
Endpoint: out421 (output port)
Path Group: (none)
Path Type: max
Point Incr Path
---------------------------------------------------------------
input external delay 0.00 0.00 r
in37 (in) 0.00 0.00 r
Ckt432/A[5] (TopLevel432b) 0.00 0.00 r
Ckt432/M1/A[5] (PriorityA) 0.00 0.00 r
Ckt432/M1/U8/Y (INVX1_RVT) 0.03 0.03 f
Ckt432/M1/U13/Y (NAND2X0_RVT) 0.06 0.10 r
Ckt432/M5/U12/Y (OA21X1_RVT) 0.10 2.44 r
Ckt432/M5/Chan[3] (DecodeChan) 0.00 2.44 r
Ckt432/Chan[3] (TopLevel432b) 0.00 2.44 r
out421 (out) 0.00 2.44 r
data arrival time 2.44
---------------------------------------------------------------
(Path is unconstrained)
我正在尝试
将第 5 列替换为第 2 列。如果第 5 列中的字母是
r,则将替换为v。如果第 5 列中的字母是f,则将替换为^。在第一列中插入两个双引号。
将第三列替换为
;将第 4 列替换为
//
这应该只在定义开始和结束行的块中完成 - input external delay , data arrival time。
此外,我想用预定义的文本更改块之前/之后的文本。
我的预期输出应该是:
$path {
// from: in11
// to: out432
$name "test_1" ;
$cycle 1 ;
$slack -0.130978 ;
$transition {
"in11" v ; // (in)
"Ckt432/A[7]" v ; // (TopLevel432b)
"Ckt432/M1/A[7]" v ; // (PriorityA)
"Ckt432/M1/U7/Y" ^ ; // (INVX1_RVT)
"Ckt432/M5/U12/Y" v ; // (OA21X1_RVT)
"Ckt432/M5/Chan[3]" v ; // (DecodeChan)
"Ckt432/Chan[3]" v ; // (TopLevel432b)
"out421" v ; // (out)
}
}
$path {
// from: in11
// to: out432
$name "test_2" ;
$cycle 1 ;
$slack -0.130978 ;
$transition {
"in37" v ; // (in)
"Ckt432/A[5]" v ; // (TopLevel432b)
"Ckt432/M1/A[5]" v ; // (PriorityA)
"Ckt432/M1/U8/Y" ^ ; // (INVX1_RVT)
"Ckt432/M1/U13/Y" v ; // (NAND2X0_RVT)
"Ckt432/M5/U12/Y" v ; // (OA21X1_RVT)
"Ckt432/M5/Chan[3] " v ; // (DecodeChan)
"Ckt432/Chan[3] " v ; // (TopLevel432b)
"out421" v ; // (out)
}
}
目前,我可以交换列,但我不知道如何仅在块中使用它们。我的代码是:
awk ' { c1 = $1; c2 = $2; $1 = " \" "; $2 = c1; $3 = " \" "; $4 = $5; $5 = " ; // "; $6 = c2; print; } ' file1.txt
任何帮助将不胜感激。
【问题讨论】:
-
第五列是哪一列?我只在表格中看到 3 列