pt + adicionar comentário ao IP - somente se o IP for correspondido exatamente

0

meu alvo é adicionar "#" ao IP com sed,

Mas somente se o IP for correspondido exatamente !!!

por exemplo:

 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

o comando abaixo sed irá adicionar "#" ao IP no arquivo hosts, apesar de não corresponderem

O que eu preciso adicionar à minha sintaxe sed a fim de adicionar o "#" apenas no caso de IP's estarem completos idênticos ??

    
por yael 11.02.2016 / 19:43

2 respostas

4

Você pode adicionar limites de palavras e alterar . para \. (para corresponder a períodos literais, em vez de caracteres)

sed 's/\b72\.16\.90\.12\b/#&/g'

Observe também o uso de & para economizar ao duplicar a substituição. Você provavelmente não precisa do modificador g neste contexto, já que seus endereços de host são um por linha.

    
por 11.02.2016 / 19:55
0
IP=10.10.10.10   # change to yours
sed -i -e "/${IP}/s/${IP}/#${IP}/" /etc/hosts
    
por 11.02.2016 / 19:50