#!/usr/bin/gawk -f
BEGIN { OFS=FS="|"}
a[$1][$2][3] { a[$1][$2][3] = a[$1][$2][3] "," $3;
a[$1][$2][4] = a[$1][$2][4] "," $4;
next }
{ a[$1][$2][3] = $3;
a[$1][$2][4] = $4 }
END { for (b in a)
for(c in a[b]) print b,c,a[b][c][3],a[b][c][4] }
См. Комментарий @ dave_thompson_085 ниже о соответствующей версии для awk (с использованием одномерных массивов)