2017-09-27 62 views
0

我有一个文本文件。我只想在一行以.subckt开头的情况下去掉VDD,VDDG,VSS。因为其他线路也有VDD,VDDG,VSS只有当一行以特定词开头时,才能删除匹配的词

我知道一个简单的SED命令来替换一个匹配的单词,如下所示,但在这种情况下,我只想删除一行以.subckt开头的行。请提供任何反馈。这对我很有帮助。先谢谢你。

SED的/ VDD//'test.txt的

的test.txt:

.subckt AO22X2_RVT A1 A2 A3 A4 VDD VSS Y 
MN1 net2 A2 VSS VSS n105 w=0.28u l=0.03u nf=1.0 m=1 
MN3 net4 A4 VSS VSS n105 w=0.28u l=0.03u nf=1.0 m=1 
MN5 Y net3 VSS VSS n105 w=0.42u l=0.03u nf=1 m=2 
MN4 net3 A3 net4 VSS n105 w=0.28u l=0.03u nf=1.0 m=1 
MN2 net3 A1 net2 VSS n105 w=0.28u l=0.03u nf=1.0 m=1 
MP4 net3 A3 net1 VDD p105 w=0.54u l=0.03u nf=1.0 m=1 
MP1 net1 A2 VDD VDD p105 w=0.54u l=0.03u nf=1.0 m=1 
MP2 net1 A1 VDD VDD p105 w=0.54u l=0.03u nf=1.0 m=1 
MP5 Y net3 VDD VDD p105 w=0.8u l=0.03u nf=1 m=2 
MP3 net3 A4 net1 VDD p105 w=0.54u l=0.03u nf=1.0 m=1 
.ends AO22X2_RVT 
.subckt AOINVX4_RVT A VDD VDDG VSS Y 
MN0 Y A VSS VSS n105 w=0.31u l=0.03u nf=1 m=4 
MP0 Y A VDDG VDDG p105 w=0.80u l=0.03u nf=1 m=4 
.ends AOINVX4_RVT 
. 
. 
. 

回答

2

这里的awk解决方案,

awk '/^\.subckt/{gsub(/VDD|VDDG|VSS/,"")}1' file 
0

这就是我想出:

sed '/^\.subckt/ {s/VDD//; s/VDDG//; s/VSS//; }' 
相关问题