Se você quiser unir as linhas com o mesmo número de ethernet e substituir o :
por ,
, então você pode canalizar a saída para
awk -F: '
/ETHERNET/{ i = $1; v[i] = v[i] "," $2; if($3!="")v[i] = v[i] "," $3 }
END{ n = asorti(v,x)
for(j=1;j<=n;j++){ i = x[j]; print i "=" substr(v[i],2) }
}'
Isso divide cada linha em :
, usa o primeiro campo ETHERNET0
como um índice em uma matriz associativa v
, que coleta os campos 2 e 3 (se o campo 3 não estiver vazio). Ao final da entrada, as chaves (índices) da matriz são ordenadas para que possamos iniciar a saída com ETHERNET0
, e para cada tecla imprimimos e os campos coletados, omitindo o primeiro caracter que é sempre uma vírgula extra, desde nós sempre adicionamos antes do campo 2.
O resultado, tratando cada um dos seus comandos como independentes, é:
ETHERNET0=64,2215,52,64,3969,701,702,2152,2154,4001
ETHERNET1=55,3971,51,53,55,3972,2151,2153,2155,4002
ETHERNET0=52,2152
ETHERNET0=54,4001,3968,52,54
ETHERNET1=3969,701,702,2152,2154,5569,4002,5001