我的 /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