混合引用变量扩展我有这个sed的oneliner巴什 - 与SED产量坏替代
sed -i -n "1h; 1!H; ${g; :a s/\(Name=\"$key\".*<\!\[CDATA\[\"\)$val\(\"\]\]>\)/\1$deval\2/;ta p}"
很显然,我需要key
,val
和deval
在sed扩大变量的问题。所以我需要围绕sed命令的"
。
使用此命令我得到
bash: !H: event not found
逃避!
纠正它
sed -i -n "1h; 1\!H; ${g; :a s/\(Name=\"$key\".*<\!\[CDATA\[\"\)$val(\"\]\]>\)/\1$deval\2/;ta p}"
有了这个,我得到
bash: sed -i -n "1h; 1\!H; ${g; :a s/\(Name=\"$key\".*<\!\[CDATA\[\"\)$val\(\"\]\]>\)/\1$deval\2/;ta p}" :bad substitution
所以我想{
是个问题。试图修复它像这样
sed -i -n "1h; 1\!H; $\{g; :a s/\(Name=\"$key\".*<\!\[CDATA\[\"\)$val(\"\]\]>\)/\1$deval\2/;ta p}"
债收益率
sed: -e expression 1, char 6: unknown command: "\"
这到底是怎么回事?我该如何做这项工作?
您是否尝试过单外引号? 'sed'...'' – svante
当然...变量不会扩展,然后... – bartimar