Another method, 3 commands, a little bit longer, but easier to understand. Here I assume there are 5 fields in the source file,
(awk -F "," '{print FNR, $1}' filename ; awk -F "," '{print FNR, $2}' filename ; awk -F "," '{print FNR, $3}' filename ; awk -F "," '{print FNR, $4}' filename ; awk -F "," '{print FNR, $5}' filename) | grep "NAME=" | sort > tab1
(awk -F "," '{print FNR, $1}' filename ; awk -F "," '{print FNR, $2}' filename ; awk -F "," '{print FNR, $3}' filename ; awk -F "," '{print FNR, $4}' filename ; awk -F "," '{print FNR, $5}' filename) | grep "POSTCODE=" | sort > tab2
join tab1 tab2
"awk" outputs the fields with line number (record number), then we "join" them together by line numebr. Just like we make a query / joint between 2 tables, "select tab1.NAME, tab2.POSTCODE from tab1, tab2 where tab1.linenumber=tab2.linenumber"