
私の目標は、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 アドレスに「#」を追加します。
IPがまったく同じ場合にのみ「#」を追加するには、sed構文に何を追加する必要がありますか?
答え1
追加できます単語の境界、.
次に変更されました\.
(文字ではなくリテラルピリオドと一致するように)。
sed 's/\b72\.16\.90\.12\b/#&/g'
また、&
保管のための使用は繰り返し交換する必要があることに注意してください。この場合、g
ホストアドレスが 1 行に 1 つずつあるため、修飾子が必要ない場合があります。
答え2
IP=10.10.10.10 # change to yours
sed -i -e "/${IP}/s/${IP}/#${IP}/" /etc/hosts