我正在尝试使用sed程序使用bash变量替换配置文件中的两行文本,但行替换有效,但行的开头有一个额外的空格。
我的命令如下:
replacement="computer_id = $server_ref"
(其中$ server_ref是用户输入的变量)
然后:
sed "/computer_id/c \ ${replacement}" -i slapos.cfg
替换的另一行只使用相同的命令,只需在配置文件中更改另一个变量。
此更改的输出类似于
computer_id = something
什么时候应该
computer_id = something
导致使用配置导致程序崩溃,因为它不会占用该空间。
答案 0 :(得分:4)
最好这样做:
sed -i "s/^\\(computer_id = \\).*/\\1${server_ref}/" slapos.cfg
如果额外的空格崩溃,那么读取配置文件的程序就不是很健壮了。