search e Substituir substring no endereço mac em um arquivo de texto

1

Abaixo é extraído o arquivo a ser alterado: Pode usar o awk ou sed ... qualquer utilitário é bom para correspondência de padrões

mgad 1
m-id         50
rf-chan-id   1
base-station-id 00:a0:bc:0c:1b:c1
....
....
mgad 2
....
base-station-id 00:a0:bc:0c:1b:c2
....
....
mgad 3
....
base-station-id 00:a0:bc:0c:1b:c3
....
....
mgad 4
base-station-id 00:a0:bc:0c:1b:c4

Eu tenho que editar o endereço MAC na 5ª posição do 00: a0: bc: 0c: XX: c3 a 00: a0: bc: 0c: 18: c3 para várias linhas no arquivo. PN: 5ª posição pode ser variável, precisa ser alterada para "18"

Eu tentei isso:

sed -En ' s/^\( base-station-id.* [0-9A-Fa-f]{2}\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:[0-9A-Fa-f]\:\)[0-9A-Fa-f]+\(\:.*\)$/8/p; '

Por favor ajude com a correspondência correta de padrões regex e substitua com a mudança desejada na substring no endereço mac

    
por Roy M 31.10.2017 / 00:22

1 resposta

1

Capture a porção principal; permitir quaisquer dois caracteres na quinta posição do MAC, capturar a parte final e substituí-la pelo primeiro grupo capturado, o texto 18 e o segundo grupo capturado:

sed 's/\(base-station-id ..:..:..:..:\)..\(:..\)/8/' < input > output
    
por 31.10.2017 / 00:46