O que há de errado com este sed?

0

Gostaria de modificar o endereço IP para 'relvir':

127.0.0.1   localhost
127.0.1.1   debian-foo.jimnet debian-foo

54.218.208.77   server1
31.187.98.19    machine2
51.39.207.120   relvir

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Estou tentando fazer assim, mas não entendo por que não está funcionando:

cat sedtest | sed 's/.+relvir$/1.2.3.4 relvir/'

Obrigado antecipadamente!

    
por Uxio 18.07.2017 / 15:41

2 respostas

2

Com expressões regulares básicas sed tratará + literalmente, para executar o uso de substituição necessário * quntifier:

cat sedtest | sed 's/.*relvir$/1.2.3.4 relvir/'

Para continuar tratando + como quantificador use expressões regulares estendidas aplicando -E option:

cat sedtest | sed -E 's/.+relvir$/1.2.3.4 relvir/'
    
por 18.07.2017 / 15:44
0

Eu acredito que isso é o que você está procurando

cat sedtest | sed 's/.\+relvir$/1.2.3.4 relvir/'

    
por 18.07.2017 / 15:47

Tags