需要替换/etc/hosts文件中的ip和主机名

需要替换/etc/hosts文件中的ip和主机名

我的 /etc/hosts 如下所示

1.2.3.4 abc.xyz.com # comment section
2.3.4.5 bcd.xyz.com # comment section
2.3.4.6 cde.xyz.com # comment section

主机名将是用户输入,我想读取/etc/hosts,查找此条目是否存在,如果它确实替换为用户提供的新主机,并替换新主机和主机名的ip..我想编辑后保留评论。就像
“test.sh -replace abc.xyz.com -with qwe.xyz.com”

输出 :

5.6.7.8 qwe.xyz.com #comment section

答案1

简单的sed代换:

sed -Ei 's/^([0-9]+\.){3}[0-9]+ abc\.xyz\.com/5.6.7.8 qwe.xyz.com/' /etc/hosts

最终/etc/hosts内容:

5.6.7.8 qwe.xyz.com # comment section
2.3.4.5 bcd.xyz.com # comment section
2.3.4.6 cde.xyz.com # comment section

相关内容