date命令打印YYYY-MM-DD到文件

2013-04-16

生成一个日期列表文件b2.txt,包含从今天起至前几年的yyyy-mm-dd格式,每天1行。

1、date命令-d, --date=STRING参数

2年前
date --date="2 years ago" +%Y%m%d
2个月后
date --date="2 months" +%Y%m%d

2个月前
date --date="2 months ago" +%Y%m%d
2个月后
date --date="2 months" +%Y%m%d

昨天
date --date='1 days ago' “+%Y-%m-%d"
date -d '1 days ago' “+%Y-%m-%d"
date -d yesterday “+%Y-%m-%d"
明天
date --date='1 days' “+%Y-%m-%d"
date -d '1 days' “+%Y-%m-%d"
date -d tomorrow “+%Y-%m-%d"

1小時前
date --date='1 hours ago' “+%Y-%m-%d %H:%M:%S"
1小時後
date --date='1 hours' “+%Y-%m-%d %H:%M:%S"

1分鐘前
date --date='1 minutes ago' “+%Y-%m-%d %H:%M:%S"
1分鐘後
date --date='1 minutes' “+%Y-%m-%d %H:%M:%S"

1秒前
date --date='1 seconds ago' “+%Y-%m-%d %H:%M:%S"
1秒後
date --date='1 seconds' “+%Y-%m-%d %H:%M:%S"

2、脚本
#get_date.sh

#!/bin/bash

cat /dev/null > b1.txt

year_num=$1

thisyear=`date +%Y`
leapyear=0

if [ -z "$1" ];then
echo "Usage: $0 years"
exit 1;
fi

#计算包含几个闰年
for (( i = $thisyear; i > $thisyear-$1; i--));
do
if [[ $(($i%4==0&&$i%100!=0||$i%400==0)) = 1 ]] ; then
((leapyear++));
fi
done

#一年的第几天
export days=`date +%j`
#几年的第几天
export year2days=`expr $1 \* 365 + $days + $leapyear`

for (( j = 1; j < $year2days; j++)); do date -d "$j days ago" +%Y-%m-%d >> b1.txt;
done

sort b1.txt > b2.txt

分类:编程 | 标签: |

相关日志

评论被关闭!