2 回答
TA贡献1851条经验 获得超4个赞
-E使用具有启用 ERE 选项的sed ,例如 GNU 或 OSX/BSD sed:
$ sed -E 's/\$(value)\$plus(args\("[^=]+)=%0?(.)/get_\3\1_\2/' file
get_dvalue_args("DEC_ARG", val1);
get_hvalue_args("HEX_ARG", val2);
get_svalue_args("STRING_ARG", val3);
对于任何 POSIX sed:
$ sed 's/\$\(value\)\$plus\(args("[^=]\{1,\}\)=%0\{0,1\}\(.\)/get_\3\1_\2/' file
get_dvalue_args("DEC_ARG", val1);
get_hvalue_args("HEX_ARG", val2);
get_svalue_args("STRING_ARG", val3);
TA贡献1909条经验 获得超7个赞
Perl 1 衬垫
perl -pne "s/\$value\$plusargs(\(\"[A-Z_]+)=%\d?([a-z])/get_$2value_arg$1/;" data_file
输入
$value$plusargs("DEC_ARG=%0d", val1);
$value$plusargs("HEX_ARG=%h", val2);
$value$plusargs("STRING_ARG=%s", val3);
输出
get_dvalue_arg("DEC_ARG", val1);
get_hvalue_arg("HEX_ARG", val2);
get_svalue_arg("STRING_ARG", val3);
添加回答
举报