Você realmente quer mesclar as listas de valores? Isso é
port_defined=1,3,5
port_defined=2,4,123
deve ser combinado em
port_defined=1,2,3,4,5,123
Se sim, você poderia tentar
BEGIN { FS = "=" }
NR == FNR && /ports_defined/ { ports=$2 }
NR > FNR {
if ($1 == "ports_defined") {
ports = ports "," $2
split(ports, p, ",")
for (i in p) {
if (!num[p[i]]) {
result = result "," p[i]
num[p[i]] = 1
}
}
print $1 "=" substr(result, 2)
} else {
print
}
}