我想用sed替换conf文件中的2个条目

# Set Server
/bin/sed -i 's/server: 127.0.0.1/server: xxx.xxx.xxx.xxx/' /etc/cobbler/settings

# Set next Server
/bin/sed -i 's/next_server: 127.0.0.1/next_server: 192.168.122.1/' /etc/cobbler/settings

由于某种原因,它更改了两者的主条目,为什么?我使用2种不同的模式来检查“服务器”和“下一个服务器”

我也想知道如何更改带引号的字符串模式
#change default password
/bin/sed -i 's/default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."/default_password_crypted: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/' /etc/cobbler/settings

谢谢

最佳答案

只需在正则表达式的开头添加^,以要求该行以该字符串开头即可。

# Set Server
/bin/sed -i 's/^server: 127.0.0.1/server: xxx.xxx.xxx.xxx/' /etc/cobbler/settings

# Set next Server
/bin/sed -i 's/^next_server: 127.0.0.1/next_server: 192.168.122.1/' /etc/cobbler/settings

10-05 23:21
查看更多