gawk :
awk 'BEGIN{ FS=OFS=","; print "id,name,tel,fax,site" }
{ gsub(/"/,"",$3); a[$1][$3]=$4; if(!a[$1]["name"]) a[$1]["name"]=$2; }
END { for(i in a) print i,a[i]["name"],a[i]["tel"],a[i]["fax"],a[i]["site"] }' file
A saída:
id,name,tel,fax,site
"1","toto corp","+123456789","+198765432","totocorp.com"
"2","Namek corp","+14377678563","+19867334565","Namekcorp.com"
-
a[$1][$3]=$4
- array multidimensional, usandoid
field value como chave pai econtact-type
field values como chaves da matriz aninhada