sed错误:unterminated's'命令

时间:2012-04-25 02:15:25

标签: unix sed

我在sed命令下运行

sed -i s/abc=.*$/abc=def ghi/g hpq_sf_attach_wf_param.txt

它给了我错误:

sed: -e expression #1, char 17: unterminated `s' command

我注意到这是由defghi之间的空格造成的。 知道怎么解决吗?

2 个答案:

答案 0 :(得分:13)

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

sed -i 's/abc=.*$/abc=def ghi/g' hpq_sf_attach_wf_param.txt

答案 1 :(得分:2)

所以geekosaur说对了。你遇到问题的原因是因为它需要是通配符的双引号,因为使用单引号将它们作为文字字符,而不是你想要的含义。

sed -i "s/abc=.*$/abc=def ghi/g" hpq_sf_attach_wf_param.txt

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

sed -i "s/abc=.*$/abc=def\ ghi/g" hpq_sf_attach_wf_param.txt