# setup.awk Creates class roster file and mail list file from the # class list downloaded from "AccessPlus." # # Author: Roger Alexander # Date: Fri Aug 26 2005 # # [NB quoted fields separated by comma /,/ # [ or (new, 08/2005) comma equal /,=/ dammit. # [ Change 'em to vertical bars to avoid the # [ Embedded Comma Problem.] # # Usage: # # % sed 's/","/|/g' *MATH*.CSV | sed 's/",="/|/g' | gawk -f setup.awk # % set maillist= # % chlist -c -M $maillist # % chlist -f maillist $maillist # AWK commands begin here. # Fields are separated by vertical bars. # Set pointers to fields with data we want, # and name the output files to be created. BEGIN { FS = "|" instemail = "" instname = "" name = 16 first = 18 middle = 19 last = 20 email = 26 term = 1 rfil = "roster" mfil = "maillist" } # Second line: extract course title and other info. # Print headers in both files; include instructor in mail list. NR == 2 { term = $1 printf("%s %s Section %s, %s Semester %s\n\n",$3,$5,$6,$1,$2) >rfil printf(";\t%s %s Section %s, %s Semester %s\n;\n",$3,$5,$6,$1,$2) >mfil printf("%s@iastate.edu;\t\t%s\n",instemail,instname) >mfil } # Student record. # Strip trailing blanks from name & e-mail address. # Create a blank student roster record in the format # # Last-name, First-name Middle-name Code: # In-Class: # Quizzes: # Projects: Midterm: Final: # # Enter e-mail address and name in mail list. $1 ~ term { sub(/\ *$/,"",$first) sub(/\ *$/,"",$middle) sub(/\ *$/,"",$last) sub(/\ *$/,"",$email) printf("%s, %s %s\t\tCode:\n",$last,$first,$middle) >rfil printf(" In-Class:\n Quizzes:\n Projects:\t\tMidterm:\t\tFinal:\n\n") >rfil printf("%s;\t\t%s\n",$email,$name) >mfil } # Create roster records for dummy entries serving as letter-grade cutoffs. # Note to self: It wouldn't be hard to make this a loop. END { printf("ZzzLow, Aaa\t\tCode: ZzzMin A-\n") >rfil printf(" In-Class:\n Quizzes:\n Projects:\t\tMidterm:\t\tFinal:\n\n") >rfil printf("ZzzLow, Bbb\t\tCode: ZzzMin B-\n") >rfil printf(" In-Class:\n Quizzes:\n Projects:\t\tMidterm:\t\tFinal:\n\n") >rfil printf("ZzzLow, Ccc\t\tCode: ZzzMin C-\n") >rfil printf(" In-Class:\n Quizzes:\n Projects:\t\tMidterm:\t\tFinal:\n\n") >rfil printf("ZzzLow, Ddd\t\tCode: ZzzMin D-\n") >rfil printf(" In-Class:\n Quizzes:\n Projects:\t\tMidterm:\t\tFinal:\n\n") >rfil }