link Endereços MAC e IDs de porta

0

Eu tenho um arquivo de texto que inclui o endereço MAC e suas portas relevantes, que foram ordenadas de forma que o endereço MAC corresponda ao número único dos mesmos números de linha, ou seja, o endereço MAC na linha 1 corresponde ao primeiro número único o segundo endereço MAC corresponde ao segundo número único e assim por diante ...

Eu gostaria de combinar cada MAC e porta por exemplo, o arquivo abaixo:

"1e 47 29 00 A0 60 "
"1e 47 29 00 A0 64 "
"1e 47 29 00 A0 AF "
"1e 47 29 00 B1 50 "
"0C 72 0A 27 5F 71 "
"0C 72 0A 27 BC BA "
"2B 07 D4 A2 30 CD "
"2B 07 D4 A2 33 64 "
9
3
7
1
4
2
10
8

Eu quero remover a citação "" dos MACs, adicionar o número da porta ao lado e separar o MAC e a porta por dois pontos como este

1e 47 29 00 A0 60 :9
1e 47 29 00 A0 64 :3
1e 47 29 00 A0 AF :7
1e 47 29 00 B1 50 :1
0C 72 0A 27 5F 71 :4
0C 72 0A 27 BC BA :2
2B 07 D4 A2 30 CD :10
2B 07 D4 A2 33 64 :8
1B 02 D7 A4 23 65 :19
    
por Craig Smith 10.10.2018 / 16:12

2 respostas

3

awk e sed combinação:

awk '{a[NR]=$0}END{for(i=1;i<=NR/2;i++)print a[i]":"a[i+(NR/2)]}' file | sed 's/"//g'

1e 47 29 00 A0 60 :9
1e 47 29 00 A0 64 :3
1e 47 29 00 A0 AF :7
1e 47 29 00 B1 50 :1
0C 72 0A 27 5F 71 :4
0C 72 0A 27 BC BA :2
2B 07 D4 A2 30 CD :10
2B 07 D4 A2 33 64 :8
1B 02 D7 A4 23 65 :19
    
por 10.10.2018 / 16:15
1

Uma solução apenas awk :

awk 'gsub("\"",""){a[++i]=$0;next}{print a[++j]":"$0}' file
    
por 10.10.2018 / 17:06