Code:
awk '
NR==1 {print "Name," $0
CC = NF
for (i=1; i<2^CC; i++) Set[i] = 0
next
}
{for (i=1; i<=CC; i++) {T[$i]
R[$i,i] = 1
}
}
END {delete T[""]
for (t in T) {TMP = 0
for (i=1; i<=CC; i++) {printf "%s,%s%s", i==1?t:_, R[t,i]+0, i==CC?RS:_
TMP = TMP + 2^(i-1)*R[t,i]
}
Set[TMP]++
}
for (i=1; i<2^CC; i++) {TMP = 0
for (j=0; j<CC; j++) if (int(i/2^j)%2) TMP = TMP * 10 + j+1
printf "Set%d_%s=%d" RS, TMP, TMP<10?"unique":"common", Set[i] | "sort -k1.4,1n"
}
}
' FS=, file
Name,Set1,Set2,Set3,S4,S5
g1,1,1,1,1,1
g2,1,1,0,1,0
g3,0,0,1,1,0
g4,1,0,0,1,1
g5,0,1,1,1,1
g6,1,0,0,1,1
g7,0,1,0,1,1
g8,0,0,1,0,1
Set1_unique=0
Set2_unique=0
Set3_unique=0
Set4_unique=0
Set5_unique=0
Set12_common=0
Set13_common=0
Set14_common=0
Set15_common=0
Set23_common=0
Set24_common=0
Set25_common=0
Set34_common=1
Set35_common=1
Set45_common=0
Set123_common=0
Set124_common=1
Set125_common=0
Set134_common=0
Set135_common=0
Set145_common=2
Set234_common=0
Set235_common=0
Set245_common=1
Set345_common=0
Set1234_common=0
Set1235_common=0
Set1245_common=0
Set1345_common=0
Set2345_common=1
Set12345_common=1