Vim: substitua toda a linha começando com string com linha

8

Neste texto

hardware mac 33:33:333:33:33
hardware mac 33:13:333:33:33
hardware mac 33:23:333:23:34
hardware mac 33:033:133:33:35
...

Eu quero substituir todas as linhas que começam com o hardware mac com

hardware mac 00:00:00:00:00:00

Eu tentei

sed s/^hardware mac/hardware mac 00:00:00:00:00:00/gc

e dar erro

também o comando clássico do vim

%s:/^hardware mac/hardware mac 00:00:00:00:00:00/gc

Mas mude apenas o mac de hardware de string deixando os números intocados. Como substituir string começando com o mac do hardware com minha corda?

    
por elbarna 09.01.2016 / 23:55

1 resposta

10

Você quase acertou, esqueceu de combinar com o resto da linha (em vim ):

:%s/^hardware mac.*/hardware mac 00:00:00:00:00:00/gc

Você pode descartar as opções gc no final, se tiver certeza do que está fazendo, g provavelmente será desnecessário, já que você não corresponderá a mais de uma vez por linha.

Com sed é a mesma coisa:

sed -i 's/^hardware mac.*/hardware mac 00:00:00:00:00:00/' filename

Observe que o comando de substituição sed s não aceita um sinalizador c (confirm), como vim .

    
por 10.01.2016 / 00:03

Tags