2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
-E使用具有啟用 ERE 選項(xiàng)的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貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
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);
添加回答
舉報(bào)