shell遍历一个日期范围
2015-04-08 12:06
344 查看
方法1#!/usr/bin/env bash
date1="$1"
date2="$2"echo "date1: $date1"
echo "date2: $date2"
tempdate=`date -d "-0 day $date1" +%F`
enddate=`date -d "-0 day $date2" +%F`
tempdateSec=`date -d "-0 day $date1" +%s`enddateSec=`date -d "-0 day $date2" +%s`echo "####################################"
echo 'tempdate: '$tempdate
echo 'enddate: '$enddate
for i in `seq 1 300`; do
if [[ $tempdateSec -lt $enddateSec ]]; then
break
fi echo $tempdate
python pc_jibzhuanti_url.py $tempdate
tempdate=`date -d "-$i day $date1" +%F` tempdateSec=`date -d "-$i day $date1" +%s`
done这是一个倒序输出时间的脚本,需要输入两个时间参数,一个是开始时间,一个是结束时间,如输入:./pc_jibzhuanti_url_run.sh 2014-06-30 2014-06-01输出的结果是:date1: 2014-06-30
date2: 2014-06-01
####################################
tempdate: 2014-06-30
enddate: 2014-06-01
2014-06-30
2014-06-29
2014-06-28
2014-06-27
2014-06-26
2014-06-25
2014-06-24
2014-06-23
2014-06-22
2014-06-21
2014-06-20
2014-06-19
2014-06-18
2014-06-17
2014-06-16
2014-06-15
2014-06-14
2014-06-13
2014-06-12
2014-06-11
2014-06-10
2014-06-09
2014-06-08
2014-06-07
2014-06-06
2014-06-05
2014-06-04
2014-06-03
2014-06-02
2014-06-01
方法2
#!/bin/sh
datebeg=20120412
beg_s=`date -d "$datebeg" +%s`for ((DAY=0;DAY<=31;DAY++));
do
DAY1=`date -d @$beg_s +"%Y-%m-%d"`
A1=`cat file.${DAY1}.txt|cmd1|cmd2|blablabla...`
B2=`cat file2.${DAY1}.txt|cmd1|cmd2|blablabla...`
echo "$DAY1"
echo "scale=2;$A1*100/$B2" | bcbeg_s=$((beg_s+86400))done
方法3
STARTDAY=20141216
ENDDAY=20150204
sd=`date -d "$STARTDAY" +%s`
ed=`date -d "$ENDDAY" +%s`
DAYLEN=$(($(($ed-$sd))/86400))
#DAYLEN=0
echo $DAYLEN
sday=`date -d "$STARTDAY" +%Y-%m-%d`
syesday=`date -d "$sday + 1 day" +%Y-%m-%d`
echo $sday
echo $syesday
for((t=0;t<=$DAYLEN;t++));
do
itoday=`date +%Y%m%d -d "$sday +$t days"`
iyesday=`date +%Y%m%d -d "$syesday +$t days"`
echo $itoday
echo $iyesday
idayu=`date +%s -d "$itoday 00:00:00"`
indayu=`date +%s -d "$iyesday 00:00:00"`
echo $idayu;
echo $indayu;
addsql $idayu $indayu $itoday;
done
date1="$1"
date2="$2"echo "date1: $date1"
echo "date2: $date2"
tempdate=`date -d "-0 day $date1" +%F`
enddate=`date -d "-0 day $date2" +%F`
tempdateSec=`date -d "-0 day $date1" +%s`enddateSec=`date -d "-0 day $date2" +%s`echo "####################################"
echo 'tempdate: '$tempdate
echo 'enddate: '$enddate
for i in `seq 1 300`; do
if [[ $tempdateSec -lt $enddateSec ]]; then
break
fi echo $tempdate
python pc_jibzhuanti_url.py $tempdate
tempdate=`date -d "-$i day $date1" +%F` tempdateSec=`date -d "-$i day $date1" +%s`
done这是一个倒序输出时间的脚本,需要输入两个时间参数,一个是开始时间,一个是结束时间,如输入:./pc_jibzhuanti_url_run.sh 2014-06-30 2014-06-01输出的结果是:date1: 2014-06-30
date2: 2014-06-01
####################################
tempdate: 2014-06-30
enddate: 2014-06-01
2014-06-30
2014-06-29
2014-06-28
2014-06-27
2014-06-26
2014-06-25
2014-06-24
2014-06-23
2014-06-22
2014-06-21
2014-06-20
2014-06-19
2014-06-18
2014-06-17
2014-06-16
2014-06-15
2014-06-14
2014-06-13
2014-06-12
2014-06-11
2014-06-10
2014-06-09
2014-06-08
2014-06-07
2014-06-06
2014-06-05
2014-06-04
2014-06-03
2014-06-02
2014-06-01
方法2
#!/bin/sh
datebeg=20120412
beg_s=`date -d "$datebeg" +%s`for ((DAY=0;DAY<=31;DAY++));
do
DAY1=`date -d @$beg_s +"%Y-%m-%d"`
A1=`cat file.${DAY1}.txt|cmd1|cmd2|blablabla...`
B2=`cat file2.${DAY1}.txt|cmd1|cmd2|blablabla...`
echo "$DAY1"
echo "scale=2;$A1*100/$B2" | bcbeg_s=$((beg_s+86400))done
方法3
STARTDAY=20141216
ENDDAY=20150204
sd=`date -d "$STARTDAY" +%s`
ed=`date -d "$ENDDAY" +%s`
DAYLEN=$(($(($ed-$sd))/86400))
#DAYLEN=0
echo $DAYLEN
sday=`date -d "$STARTDAY" +%Y-%m-%d`
syesday=`date -d "$sday + 1 day" +%Y-%m-%d`
echo $sday
echo $syesday
for((t=0;t<=$DAYLEN;t++));
do
itoday=`date +%Y%m%d -d "$sday +$t days"`
iyesday=`date +%Y%m%d -d "$syesday +$t days"`
echo $itoday
echo $iyesday
idayu=`date +%s -d "$itoday 00:00:00"`
indayu=`date +%s -d "$iyesday 00:00:00"`
echo $idayu;
echo $indayu;
addsql $idayu $indayu $itoday;
done
相关文章推荐
- Shell脚本遍历一个日期范围实例
- Shell脚本遍历一个日期范围实例
- shell遍历一个日期范围
- shell遍历一个日期范围
- shell通过遍历输出两个日期范围内所有日期的方法
- unix 下 shell 遍历指定范围内的日期
- shell脚本,根据时间范围压缩时间目录成一个文件
- SHELL循环遍历两个日期作为参数执行命令
- oracle判断一个字符型日期是否在指定范围内
- 一个比较好用的日期和日历插件,可以指定时间范围[百度博客搬家]
- Linux ping一段IP地址范围的一个简单的shell
- JavaScript获取一个范围内日期的方法
- 返回一个时间范围内的---随机日期
- 一个日期的扩展函数库包括计算周次和本周时间范围(javascript)
- 判断日期时间在一个区间范围内,时间为时间戳
- 一个简单的例子:javascript设置默认日期范围为最近40天(2)
- Html5添加用户选择一个日期时间范围的日期选择器插件教程
- shell 对一个目录树的遍历及遍历文件处理
- [三卷天书]记一个asp.net生成两个日期范围内生成随机时间的方法
- SHELL循环遍历两个日期作为参数执行命令