我想在一些bash脚本中用sed替换像:
s:44:\"STRING\"
要:
s:NEWSTRING:\"NEWSTRING2\"
我尝试了很多方法来逃避特殊字符,但我总是错误
sed: -e expression #1, char 32: unterminated
s'命令`
或者像那样。
请告诉我正确的sed -i(sed -i“s / xxx / xxx / g”文件)命令?
答案 0 :(得分:1)
你必须正确地逃避反斜杠:
sed 's/s:44:\\"STRING\\"/s:NEWSTRING:\\"NEWSTRING2\\"/'
示例:
$ echo 's:44:\"STRING\"' | sed 's/s:44:\\"STRING\\"/s:NEWSTRING:\\"NEWSTRING2\\"/g'
s:NEWSTRING:\"NEWSTRING2\"
答案 1 :(得分:0)
您错过了最终分隔符。在你的情况下,它似乎是:因此,你需要在你的替换内容之后添加一个final:如果您使用像g
这样的修改指令并不重要