parsing - How do I replace a string between a set of delimiter strings including the second delimiter with sed? -
how replace string between set of delimiter strings sed? first delimiter string not replaced while; second delimiter single char needs replaced part of replacement.
i.e.
first_delem="getval(" second_delem=”,” example string: abc = param.getval((m_astringtoreplace, xml_somedata, stringparameter(l"")); the string replace or remove = (m_astringtoreplace,
this following sed command parse out string, not replace it.
sed -e 's/.*getval(\(.*\),.*/\1/' how use sed replace string using these complex delimiters ?
with input:
$ cat file abc = param.getval((m_astringtoreplace, xml_somedata, stringparameter(l"")); this performs replacement of string starts following getval( , ends first comma:
$ sed -re 's/(getval[(])[^,]*,/\1replacement/' file abc = param.getval(replacement xml_somedata, stringparameter(l"")); the regex (getval[(]) captures first delimiter group 1. [^,]*, matches follows , including first comma, ,.
note that, if had used .*, in place of [^,]*,, have matched last comma in string.
in replacement part of substitution, \1 restores first delimiter, 1 wanted keep. follows replacement, whatever want be.
Comments
Post a Comment