我的目标是使用 sed 将“#”添加到 IP,
但前提是IP完全匹配!!!
例如:
sed 's/72.16.90.12/#72.16.90.12/g' /etc/hosts
more /etc/hosts
72.16.90.121 host1
172.16.90.12 host2
下面的 sed 命令将在主机文件中的 IP 地址中添加“#”,尽管它们不匹配
我需要在 sed 语法中添加什么,以便仅在 IP 完全相同的情况下添加“#”?
答案1
你可以添加单词边界,并更改.
为\.
(以便匹配文字句点,而不是任何字符)
sed 's/\b72\.16\.90\.12\b/#&/g'
另请注意,使用 来&
保存必须重复替换。在这种情况下,您可能也不需要g
修饰符,因为您的主机地址是每行一个。
答案2
IP=10.10.10.10 # change to yours
sed -i -e "/${IP}/s/${IP}/#${IP}/" /etc/hosts