我有一个Verilog文件,如下所示:
~/Region/Area/Test/Index
在这里,我想删除整个模块,模块名称将由我指定。例如:我想删除module1,所以我要删除从module1到endmodule的行(module1,Line4,Line5,Line6,endmodule)。并保持其他其余模块不变。
删除模块1时的预期输出:
Line1
Line2
Line3
module1
Line4
Line5
Line6
endmodule
Line7
Line8
module2
Line9
Line11
Line12
Line13
endmodule
Line15
Line16
我该怎么办?
答案 0 :(得分:1)
为此,我将使用sed而不是perl:
sed -e '/module1/,/endmodule/d' input.txt
X,Y
指定了要执行的操作的行范围,从匹配X的那一行开始,到匹配Y的那一行结束,d
命令基本上说删除当前行而不是打印像平常一样。
如果在perl上进行设置,则scalar form of the range operator(..
)允许进行相同的操作:
perl -ne 'print unless /module1/ .. /endmodule/' data.txt