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
分类:编程 | 标签: program |