#! /bin/csh -f # Make a report containing the data from the students' daily reflection surveys. set divisor = 9 set suffix = "-final" set reflectionsFolder = DailyReflectionSurveys set dataFolder = $reflectionsFolder/RawData set reportsFolder = ../IndividualReports set reportHours = ${cwd}/${reflectionsFolder}/reportHours${suffix}.txt set sortedReportHours = ${cwd}/${reflectionsFolder}/sortedReportHours${suffix}.txt set suffix = "--_What_work_did_you_do_for_this_class_on_this_day_.tab.txt" set temp = /tmp/tempReflection set temp1 = /tmp/tempReflection1 set studentsFile = students set students = (`cat $studentsFile`) set students = (kowalika) # -------------------------------------------------------------- # Do everything in the folder that contains the raw data. # -------------------------------------------------------------- cd $dataFolder # -------------------------------------------------------------- # Rename any surveys that have the "long" version of their name, # so that a listing of the survey names is prettier. # -------------------------------------------------------------- foreach f (`/bin/ls Monday* Tuesday* Wednesday* Thursday* Friday*`) if ($f =~ *${suffix}) then echo $f \ | sed s/${suffix}// \ | sed 's/_*$//' \ | sed 's/__*/_/g' \ | sed 's/\(^[^_]*\)_\(.*$\)/\2_\1/' \ | sed 's/_Sunday//' \ >! $temp set newName = `cat $temp` /bin/mv $f $newName endif end # -------------------------------------------------------------- # Produce a report that lists, for each student, # the total hours that that student has reported so far. # -------------------------------------------------------------- echo -n "" >! $reportHours echo -n "" >! tempReport foreach student ($students) echo "Doing $student" echo -n "" >! $temp echo -n "" >! $reportsFolder/${student}.txt foreach survey (*Monday* *Tuesday* *Wednesday* *Thursday* *Friday*) echo "$survey" grep '"'${student}'"' $survey \ | sed 's/[ ][^ ]*$//' \ | sed 's/More than 12 hours/12 hours/' \ | awk -F\t '{print $5}' \ | sed 's/ hour.*$//' \ | sed 's/"//' \ >! $temp1 grep '"'${student}'"' $survey >> tempReport set number = `wc $temp1 | awk '{print $1}'` if ($number > 0) then set hours = `awk 'BEGIN {max = 0} {if ($1 > max) max = $1} END {print max}' $temp1` echo $hours >> $temp if ($number > 1) then echo "Warning: $student had $number reports for $survey -- used $hours" echo "Warning: $student had $number reports for $survey -- used $hours" >> $reportsFolder/${student}.txt endif awk '{printf("%s ", $1)}' $temp1 >> $reportsFolder/${student}.txt echo "$survey" >> $reportsFolder/${student}.txt endif end set totalHours = `awk '{sum += $1} END {print sum}' $temp` set numberSurveys = `wc $temp | awk '{print $1}'` echo $student $totalHours $numberSurveys \ | awk '{printf("%-8s %5.1f %2d %5.1f %5.1f\n", $1, $2, $3, $2 * 5.0 / $3, $2 * 1.0 / divisor)}' divisor=$divisor \ >> $reportHours end sort +4 -n $reportHours >! $sortedReportHours /bin/rm -f $temp $temp1