我想在verilog端口列表后附加一些代码,其格式为:
module module_name (
input wire in1,
input wire in2,
output wire out1
);
我正在寻找有关如何使用sed(或其他命令)查找以“module”开头并以“)”结尾的端口列表的帮助;“然后在“);”
之后的行上附加一些代码命令:
sed '/^module/,/);/a code to append' test.v
将“代码附加”放在匹配序列中的每一行上,而不仅仅是在
之后module module_name (
code to append
input wire in1,
code to append
input wire in2,
code to append
output wire out1
code to append
);
code to append
答案 0 :(得分:3)
这可能对您有用:
sed '/^module/,/);/!b;/);/a\NEWCODE' file
答案 1 :(得分:1)
这是一个小小的问题,但它会完成这项工作:
sed ':a /module/s/);/);\ncode to append/;t;N;b a' filename
答案 2 :(得分:0)
您可以使用命令行perl
代替sed而不是:
perl -0pe 's@(module[^(]*\([^)]*\)\s*;)@$1'"\na code to append"'@' test.v
module module_name (
input wire in1,
input wire in2,
output wire out1
);
a code to append
答案 3 :(得分:0)
既然你说sed或任何其他命令我将用perl回答。您可以使用以下命令在perl中执行此操作:
# perl -pe 'BEGIN { $/ = undef; }s#(^module.+?\);)#$1\ncode to append#omgs' test.v
module module_name (
input wire in1,
input wire in2,
output wire out1
);
code to append