fork download
  1. /^COURSE NAME/ {cn=gensub(" ","_","g",gensub(".*: ","","g",$0)); crss[cn]+=1 }
  2. /^[0-9]/ {stdnts[$1]+=1 ; v[$1 "-" cn]=$2}
  3. END {
  4. printf("%-20s","STUDENT ID");
  5. for (e in crss) {printf("%-20s",e)}
  6. printf("%-20s\n","GPA")
  7. for (s in stdnts)
  8. { printf("%-20s",s)
  9. for (cs in crss) {
  10. if (v[s "-" cs] > 0) {
  11. printf("%-20s",v[s "-" cs])
  12. }
  13. else {
  14. printf("%-20s","-")
  15. }
  16. }
  17. printf("%-20s\n"," ")
  18. }
  19. }
  20.  
Success #stdin #stdout 0s 4276KB
stdin
COURSE NAME: Java
CREDITS: 4
200345    88
300126    78
287136    68
200138    71
COURSE NAME: Operating System
CREDITS: 4
287136    86
200138    72
200345    77
300056    78
stdout
STUDENT ID          Java                Operating_System    GPA                 
300056              -                   78                                      
300126              78                  -                                       
200345              88                  77                                      
287136              68                  86                                      
200138              71                  72