: # bahn - list time the next train is leaving # Heiner Steven (heiner.steven@odn.de) : ${TIMES:=$HOME/lib/bahn} echo "time is" `date "+%H %M"` >&2 if [ $# -lt 1 ] then date "+%H %M" else cat "$@" fi | nawk ' BEGIN { MaxTime = 24 * 60 # Minutes per day Delta = 3 # Time to reach train N = 3 # Number of trains to list # Read all times a train leaves # Format: hourminute n = 0 while ( getline < "'"$TIMES"'" ) { if ( NF < 2 || $1 ~ /^\#/ ) continue Line [n]= $0 Mins [n] = $1 * 60 + $2 n++ } close ("'"$TIMES"'") } # Ignore comments and empty lines ( NF < 2 || $1 ~ /^\#/ ) { next } { # Time for next train T = ($1 * 60 + $2 + Delta) % (MaxTime + 1) # Find first train leaving after T for ( i=0; i= T ) break for ( k=0; k