1

我正在尝试使用 sed 程序使用 bash 变量替换配置文件中的两行文本,行替换有效,但是行首有一个额外的空间。

我的命令如下:

replacement="computer_id = $server_ref"

(其中 $server_ref 是用户输入的变量)

进而:

sed "/computer_id/c \ ${replacement}" -i slapos.cfg

被替换的另一行仅使用相同的命令,只是更改了配置文件中的不同变量。

这种变化的输出看起来像

 computer_id = something

什么时候应该

computer_id = something

这会导致使用配置的程序崩溃,因为它不排除该空间。

4

1 回答 1

4

这样做可能会更好:

sed -i "s/^\\(computer_id = \\).*/\\1${server_ref}/" slapos.cfg

如果额外的空白使读取配置文件的程序崩溃,那么读取配置文件的程序就不是很健壮。

于 2012-08-07T13:07:41.650 回答