sed错误:unterminated's'命令

iwa*_*wan 5 unix sed

我在sed命令下运行

sed -i s/abc=.*$/abc=def ghi/g hpq_sf_attach_wf_param.txt
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

sed: -e expression #1, char 17: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)

我注意到它是由于def和之间的空间ghi.知道怎么解决吗?

gee*_*aur 13

您需要使用引号来保护特殊字符,包括空格$,和*.

sed -i 's/abc=.*$/abc=def ghi/g' hpq_sf_attach_wf_param.txt
Run Code Online (Sandbox Code Playgroud)


小智 5

所以极客龙说得对。不过,您遇到问题的原因是因为通配符需要双引号,因为使用单引号会将它们视为文字字符,而不是您想要的含义。

sed -i "s/abc=.*$/abc=def ghi/g" hpq_sf_attach_wf_param.txt
Run Code Online (Sandbox Code Playgroud)

此外,如果“def”和“ghi”之间的空格给您带来问题,添加“\”应该有助于使其将其读取为文字空格。

sed -i "s/abc=.*$/abc=def\ ghi/g" hpq_sf_attach_wf_param.txt
Run Code Online (Sandbox Code Playgroud)