Este código
awk '
NR == FNR {feature[$1]=1; next}
$1 != "Name" {name[$1]=1; role[$1,$2]=1}
END {
for (f in feature)
printf "%-12s", f
print ""
for (n in name) {
for (f in feature)
printf "%-12s", (n SUBSEP f in role ? " " : n)
print ""
}
}
' features roles
fornece este resultado
Lecturer Student Leader
Bob
Som Som
perto o suficiente?