test.csv 的内容是:
XYZ,IN123
这是我的脚本:
Var1=IN123
Var2=A&B
sed -i "s/$Var1/$Var2/g" test.csv
这是我简单的替换test.csv内容的代码,当代码找到IN123时,将替换为A&B。
所以预期的输出是:
XYZ,A&B
但是通过上面的代码我得到:
XYZ,AIN123B
我做错了什么?
最佳答案
由于问题询问如何使用 SED 完成此操作,因此有一个鲜为人知的功能在这里非常有用 - 分隔符可以是您想要的任何内容,只要它们是不在您的替换字符串中。
所以对于以上你可以做
sed -i "s|$Var1|$Var2|g" test.csv
..并且可以将其替换为 $ 或 : 或您喜欢的任何其他内容。
关于bash - sed 命令替换具有特殊字符 "&"的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589098/