#!/bin/bash let date=`date '+%Y%j'` let date2=`date '+%j'` if [ $date2 -ge 180 ]; then let date=$date+634 fi for filename in "$@"; do if [ -f $filename ]; then month=`ls -la $filename |sed 's/^.\{42\}\(...\).*$/\1/'` day=`ls -la $filename |sed 's/^.* \([0-9]*\) ..... [^ ]*$/\1/'` coloncheck=`ls -la $filename |sed 's/^.*\(.\).. [^ ]*$/\1/'` if [ $coloncheck = ':' ]; then let year=`date '+%Y'` else year=`ls -la $filename |sed 's/^.*\(....\) [^ ]*$/\1/'` fi let year=$year*1000 case $month in Jan ) let day=$day+0 ;; Feb ) let day=$day+31 ;; Mar ) let day=$day+59 ;; Apr ) let day=$day+90 ;; May ) let day=$day+120 ;; Jun ) let day=$day+151 ;; Jul ) let day=$day+181 ;; Aug ) let day=$day+212 ;; Sep ) let day=$day+243 ;; Oct ) let day=$day+273 ;; Nov ) let day=$day+304 ;; Dec ) let day=$day+334 ;; esac if [ $date2 -ge 180 ]; then let day=$day+634 fi let day=$year+$day level=`grep '^Levl ' $filename |sed 's/^Levl \([0-9]*\)$/\1/'` echo "$filename is level $level." let daysold=$date-$day if [ $level -le 9 ]; then if [ $daysold -ge 15 ]; then echo "This file is $daysold days old, so I will trash it." rm -f $filename fi elif [ $daysold -ge 45 ]; then echo "This file is $daysold days old, so I will archive it." mv $filename archive fi fi done