#!/bin/sh # usage: $0 [weekly|monthly|quarterly] < filenames # sorts files of the form VENDOR/BOARD/COMMIT/DATE/revision.txt # into buckets of the given granularity weekly() { date --date="$1" +%GW%V } monthly() { date --date="$1" +%Y-%m } quarterly() { date --date="$1" "+%Y %m" | awk '{ q=int(($2-1)/3+1); print $1 "Q" q}' } # TODO: restrict $1 to allowed values curr="" sort -r -k4 -t/ | while read file; do timestamp=`printf $file | cut -d/ -f4` new=`$1 $timestamp` if [ "$new" != "$curr" ]; then if [ "$curr" != "" ]; then printf "\n" fi printf "$new:" curr=$new fi printf "$file " done printf "\n"