需要通过KornShell(ksh)脚本在两个给定日期之间获取文件。如果一天有多个文件,请获取当天的最新文件。
答案 0 :(得分:1)
我还没有尝试过,但有a mailing list post关于在两个日期之间查找文件的问题。相关部分:
触摸2个文件,start_date和 stop_date,像这样:$ touch -t 200603290000.00 start_date $ touch -t 200603290030.00 stop_date
好的,start_date是午夜03/29/06, stop_date是03/29/06 30分钟后 午夜。你可能想做一个ls - 检查。
开始寻找,你可以找到-newer和 然后 ! - 更新,像这样:$ find / dir - 更新的start_date! -newer stop_date -print
将它与ls -l结合使用,得到:$ find / dir -newer start_date! -newer stop_date -print0 | xargs -0 ls -l </ p>
(或者你可以尝试-exec来执行ls -l。我不确定格式,所以你必须稍微捣乱一下)
答案 1 :(得分:0)
在bash shell中,只是一个例子,你可以使用-nt test运算符(如果我没有错的话,korn shell也附带它)。
printf "Enter start date( YYYYMMDD ):"
read startdate
printf "Enter end date( YYYYMMDD ):"
read enddate
touch -t "${startdate}0000.00" sdummy
touch -t "${enddate}0000.00" edummy
for fi in *
do
if [ $fi -nt "sdummy" -a ! $fi -nt "edummy" ] ;then
echo "-->" $fi
fi
done
答案 2 :(得分:0)
在ksh的坚果壳中:
!/usr/bin/ksh
# main from_date to_date path
# date format: YYMMDDhhmmss
ls -l --time-style "+%y%m%d%H%M%S" $3 | awk '{ print $6 " " $7 }' | while read t n
do
if (( t > $1 )) && (( t < $2 )); then
echo $t $n
fi
done