If you think this is hard, you must be using the wrong language. Here it is in ksh. What you call "julian" I will call "day of year". Look up "julian day" on wikipedia. This script uses my datecalc script to allow the user to enter the endpoints as yyyymmdd. datecalc is posted to this site and our search function can find it for you.
One thing about ksh... a number with a leading zero is assumed to be octal. This is why I keep stripping leading zeros off numbers before doing arithmetic.
Code:
$ ls -1 files
A2008001231000.L2
A2008021231000.L2
A2008041231000.L2
A2008061231000.L2
A2008081231000.L2
A2008101231000.L2
$
$
$
$ ./findit
enter start yyyymmdd - 20080101
enter end yyyymmdd - 20080220
A2008001231000.L2 is in range
A2008021231000.L2 is in range
A2008041231000.L2 is in range
$
$
$
$ cat findit
#! /usr/bin/ksh
read start?"enter start yyyymmdd - "
y1=${start%????}
d1=${start#??????}
temp=${start%$d1}
m1=${temp#$y1}
m1=${m1#0}
d1=${d1#0}
doy1=$(($(datecalc -a $y1 $m1 $d1 - $y1 1 1) + 1))
#echo $start $y1 $m1 $d1 $doy1
read end?"enter end yyyymmdd - "
y2=${end%????}
d2=${end#??????}
temp=${end%$d2}
m2=${temp#$y2}
m2=${m2#0}
d2=${d2#0}
doy2=$(($(datecalc -a $y2 $m2 $d2 - $y2 1 1) + 1))
#echo $start $y2 $m2 $d2 $doy2
cd files
ls | while read name ; do
temp=${name#?}
temp1=${temp#????}
f_year=${temp%$temp1}
temp2=${temp1#???}
f_doy=${temp1%$temp2}
f_doy=${f_doy##*(0)}
# echo $name $f_year $f_doy
if ((y1<=f_year && doy1<=f_doy && f_year<=y2 && f_doy<=doy2)) ; then
echo $name is in range
fi
done
exit 0
$