- 论坛徽章:
- 0
|
性命忧关!!!!拜托各位高手!!!急!!!!!
#! bin/ksh
read path time;
find $path -name "*[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*" |
while read filename;
do num=1;
while [ $filename != " " ];
do num=` expr $num + 1 `;
dir=` echo $filename | cut -f$num -d/ `;
if [ -z $dir ];
then break;
fi;
done;
num=` expr $num - 1 `;
dir=` echo $filename | cut -f$num -d/ `;
date=` echo $dir | cut -c1-8 `;
echo $date > /tmp/dood;
test ` grep "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" /tmp/dood `;
aaa=` echo $? `;
num=1;
while [ $aaa = 1 ];
do num=` expr $num + 1 `;
numb=` expr $num + 7 `;
date=` echo $dir | cut -c$num-$numb `;
echo $date > /tmp/dood;
test ` grep "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" /tmp/dood `;
bbb=` echo $? `;
if [ $bbb = 0 ];
then break;
fi;
done;
if [ $date -lt $time ];
then year=` expr $date \/ 10000 `;
mon1=` expr $date \/ 100 `;
mon2=` expr $year \* 100 `;
mon=` expr $mon1 - $mon2 `;
day=` expr $date - $mon1 \* 100 `;
years=` expr $year \/ 4 `;
yearss=` expr $years \* 4 `;
if [ $year -gt 0 -a $mon -lt 13 -a $mon -gt 0 -a $day -lt 32 -a $day -gt 0 ];
then for i in 4 6 9 11;
do if [ $mon = $i ];
then if [ $day -lt 31 ];
then rm $filename;
fi;
fi;
done;
for i in 1 3 5 7 8 10 12;
do if [ $mon = $i ];
then if [ $day -lt 32 ];
then rm $filename;
fi;
fi;
done;
else if [ $mon = 2 ];
then if [ $year = $yearss ];
then if [ $day -lt 30 ];
then rm $filename;
fi;
else if [ $day -lt 29 ];
then rm $filename;
fi;
fi;
fi;
fi;
fi;
经试验,是成功的!!不知大家能否看懂,比较不正规吧!!!!
希望大家能够给与改进!!!
不要怨我,我真的还没搞清楚呢!!不过,肯定是shell! |
|