Parsing 如何用sed替换一组分隔符字符串(包括第二个分隔符)之间的字符串?
如何用sed替换一组分隔符字符串之间的字符串?第一个分隔符是一个字符串,在使用时不会被替换;第二个分隔符是单个字符,但需要作为替换的一部分进行替换 i、 e 要替换或删除的字符串=(m_AstringToReplace 下面的sed命令将只解析出字符串,而不会替换它Parsing 如何用sed替换一组分隔符字符串(包括第二个分隔符)之间的字符串?,parsing,sed,Parsing,Sed,如何用sed替换一组分隔符字符串之间的字符串?第一个分隔符是一个字符串,在使用时不会被替换;第二个分隔符是单个字符,但需要作为替换的一部分进行替换 i、 e 要替换或删除的字符串=(m_AstringToReplace 下面的sed命令将只解析出字符串,而不会替换它 sed -e 's/.*GetVal(\(.*\),.*/\1/' 如何使用sed替换使用这些复杂分隔符的字符串?将其作为输入: $ cat file abc = param.GetVal((m_AstringToReplace,
sed -e 's/.*GetVal(\(.*\),.*/\1/'
如何使用sed替换使用这些复杂分隔符的字符串?将其作为输入:
$ cat file
abc = param.GetVal((m_AstringToReplace, xml_SomeData, StringParameter(L""));
这将替换紧跟在GetVal(
之后并以第一个逗号结尾的字符串:
$ sed -re 's/(GetVal[(])[^,]*,/\1REPLACEMENT/' file
abc = param.GetVal(REPLACEMENT xml_SomeData, StringParameter(L""));
regex(GetVal[(])
将第一个分隔符捕获到组1中。[^,]*,
匹配第一个逗号之后的所有分隔符,,
请注意,如果我们使用*,
代替[^,]*,
,那么我们会将所有内容匹配到字符串中的最后一个逗号
在替换的替换部分,\1
还原第一个分隔符,即我们希望保留的分隔符。下面的所有操作都是替换,无论您希望它是什么。将此作为输入:
$ cat file
abc = param.GetVal((m_AstringToReplace, xml_SomeData, StringParameter(L""));
这将替换紧跟在GetVal(
之后并以第一个逗号结尾的字符串:
$ sed -re 's/(GetVal[(])[^,]*,/\1REPLACEMENT/' file
abc = param.GetVal(REPLACEMENT xml_SomeData, StringParameter(L""));
regex(GetVal[(])
将第一个分隔符捕获到组1中。[^,]*,
匹配第一个逗号之后的所有分隔符,,
请注意,如果我们使用*,
代替[^,]*,
,那么我们会将所有内容匹配到字符串中的最后一个逗号
在替换的替换部分,
\1
还原第一个分隔符,即我们希望保留的分隔符。接下来的所有操作就是替换,无论您希望它是什么。谢谢,这就是我需要的!谢谢,这就是我需要的!