8

我在 sed 命令下运行

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

它给了我错误:

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

我注意到这是由于 和 之间的def空间ghi。知道如何解决吗?

4

2 回答 2

15

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

sed -i 's/abc=.*$/abc=def ghi/g' hpq_sf_attach_wf_param.txt
于 2012-04-25T02:17:25.017 回答
4

所以 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
于 2013-05-30T18:59:07.743 回答