'在 sed 中出现在错误的位置

发布于 2024-12-02 00:27:29 字数 236 浏览 0 评论 0原文

我正在尝试使用 sed 在文件中设置 IP。我正在运行此命令

sed -i 's:$dbserver='':$dbserver='10.0.0.2':' t.conf

但当我查看 t.conf 时,该行是

$dbserver=10.0.0.2''

有人知道为什么两个单引号出现在行尾吗?

我正在运行 Debian Linux

I am trying to set an IP in a file with sed. I am running this command

sed -i 's:$dbserver='':$dbserver='10.0.0.2':' t.conf

but when I look in t.conf the line is

$dbserver=10.0.0.2''

Anyone know why the two single quotes are appearing at the end of the line?

I am running Debian Linux

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

翻身的咸鱼 2024-12-09 00:27:29

您需要将第二个 sed 参数括在双引号中:

sed -i "s:$dbserver='':$dbserver='10.0.0.2':" t.conf

这样,$dbserver 将在传递给 sed 之前替换为其值,并且单引号不需要转义。

如果您希望 $dbserver 按字面意思出现在 conf 文件中,请在美元符号前面加上反斜杠。

You need to enclose the second sed argument in double quotes:

sed -i "s:$dbserver='':$dbserver='10.0.0.2':" t.conf

This way $dbserver will be substituted with its value before being passed to sed, and the single quotes won't need escaping.

If you want $dbserver to appear literally in the conf file, preceed the dollar signs with a backslash.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文