首先,我道歉,如果之前已经回答,但我无法解决我的问题.
我需要搜索一个模式,然后用一行包含文本和变量的文本替换它.我正在使用bash ..
说
$var = "stacko.ver/rulz=" **Note: $var contain double quotes & = & a dot and /**
Run Code Online (Sandbox Code Playgroud)
我希望如此跟随1.搜索;te.xt = 注意:要搜索的值包含; &=和一个点
2.用它替换它
textnum=$var
Run Code Online (Sandbox Code Playgroud)
当然$ var应该用它的实际值替换
我的尝试
sed -i "s/;te.xt =/textnum=$var/" file
sed -i "s/;te.xt =/textnum="$var"/" file
sed -i "s/";te.xt ="/"textnum=$var"/" file
Run Code Online (Sandbox Code Playgroud)
这些都没有实际工作,sed给我一个错误或文件中没有显示$ var的值
谢谢您的帮助
问候
引用没有帮助,因为这是一个sed问题,而不是bash问题.只需选择一个未出现在文本中的sed s表达式分隔符:
sed -i "s|;te.xt =|textnum=$var|" file
Run Code Online (Sandbox Code Playgroud)
您可以选择任何s未出现在输入中的分隔符.sed -e 'streetlight'是一个完全有效的sed命令.