#!/bin/sh # # Allow sort to sort 3-letter month and/or day-of-week via pre/post processing # # Corey Satten, corey @ cac.washington.edu, 7/2002 # http://staff.washington.edu/corey MONTH1='s/Jan/01_&/g s/Feb/02_&/g s/Mar/03_&/g s/Apr/04_&/g s/May/05_&/g s/Jun/06_&/g s/Jul/07_&/g s/Aug/08_&/g s/Sep/09_&/g s/Oct/10_&/g s/Nov/11_&/g s/Dec/12_&/g ' MONTH2='s/01_\(Jan\)/\1/g s/02_\(Feb\)/\1/g s/03_\(Mar\)/\1/g s/04_\(Apr\)/\1/g s/05_\(May\)/\1/g s/06_\(Jun\)/\1/g s/07_\(Jul\)/\1/g s/08_\(Aug\)/\1/g s/09_\(Sep\)/\1/g s/10_\(Oct\)/\1/g s/11_\(Nov\)/\1/g s/12_\(Dec\)/\1/g ' DAY1=' s/Sun/00_&/g s/Mon/01_&/g s/Tue/02_&/g s/Wed/03_&/g s/Thu/04_&/g s/Fri/05_&/g s/Sat/06_&/g ' DAY2=' s/00_\(Sun\)/\1/g s/01_\(Mon\)/\1/g s/02_\(Tue\)/\1/g s/03_\(Wed\)/\1/g s/04_\(Thu\)/\1/g s/05_\(Fri\)/\1/g s/06_\(Sat\)/\1/g ' for i in $*; do case "$1" in [-+]*) ARGS="$ARGS $1"; shift;; *) if [ -f $1 ] ;then break ;else ARGS="$ARGS $1"; shift; fi;; esac done sed "$MONTH1 $DAY1" $* | sort $ARGS | sed "$MONTH2 $DAY2"