我正在尝试使用 sed 查找并替换一些文本。具体来说,我试图在可能包含空格的变量周围添加引号。
sed -i 's/$VAR some.file/"$VAR" some.file/g' path/to/file
Run Code Online (Sandbox Code Playgroud)
不幸的是,结果并非预期。我也尝试过反斜杠引号,但没有成功。我在这里缺少什么?
sed命令在Windows/cygwin下执行。
您忽略了单引号阻止变量替换的事实:
sed -i "s/$VAR some.file/\"$VAR\" some.file/g" path/to/file
Run Code Online (Sandbox Code Playgroud)
甚至
sed -i $(printf 's/%s some.file/"%s" some.file/g' "$VAR" "$VAR") path/to/file
Run Code Online (Sandbox Code Playgroud)