【发布时间】:2020-12-22 04:04:02
【问题描述】:
我正在尝试在多个文件中执行条件查找和替换。文件的内容可能是,
$value$plusargs("DEC_ARG=%0d", val1);
$value$plusargs("HEX_ARG=%h", val2);
$value$plusargs("STRING_ARG=%s", val3);
在这里,如果有%0d,我想将$value$plusargs 替换为get_dvalue_args,如果有%h,则替换为get_hvalue_args 等等..
期望的输出是,
get_dvalue_arg("DEC_ARG", val1);
get_hvalue_arg("HEX_ARG", val2);
get_svalue_arg("STRING_ARG", val3);
我尝试了下面的“awk”命令,但它用 get_dvalue_arg 替换了所有行,
awk '/=%0d/&&/$plusargs/{sub("$value$plusargs","get_dvalue_args")}1'
我也尝试了下面的“sed”命令,但结果相同,
sed -i '/=%0d/{s/$value$plusargs/get_dvalue_args/}'
请注意,我可以通过 vim 录制来做到这一点,但是我必须一个一个地修改每个文件,我正在寻找一种更好的方法来一次性完成,针对多个文件
【问题讨论】: