【经验总结】shell 日期小技巧
2011-06-15 17:06
411 查看
shell 日期小技巧
by eagoo输出两个日期之间的日期列表,很多时候需要处理一段日期区间的文件或日志,系统没有直接的命令支持,一下脚本输出两个日期间的日期列表。
#!/bin/bash
if [ $# -eq 2 ];then
date1=$1
date2=$2
fi
if [ $# -eq 1 ];then
date1=$1
date2=$1
fi
date1=`date +%Y-%m-%d -d "$date1 0 days ago"`
date2=`date +%Y-%m-%d -d "$date2 0 days ago"`
#echo $date1" "$date2
if [ ${#date1} -ne 10 -o ${#date2} -ne 10 ];then
echo "invalid input usg:datelist.sh yyyy-mm-dd yyyy-mm-dd"
exit
fi
if [[ "$date1" > "$date2" ]];then
echo "datelist.sh yyyy-mm-dd yyyy-mm-dd"
exit
fi
while [ "$date1" /< "$date2" ] || [ "$date1" = "$date2" ]
do
echo $date1
date1=`date +%Y-%m-%d -d "$date1 -1 days ago"`
done
很多日志脚本都需要处理日期,如日志名称中有日期,默认是昨天的日期,有参数的作为日期的重新操作
#!/bin/bash
if [ $# -eq 1 -a ${#1} -eq 10 ];then
date=$1
date2=`date +%Y%m%d -d "$date 0 days ago"`
else
if [ $# -eq 1 -a ${#1} -eq 8 ];then
date2=$1;
date=`date +%Y-%m-%d -d "$date2 0 days ago"`
else
date=`date +%Y-%m-%d -d "1 days ago"`
date2=`date +%Y%m%d -d "1 days ago"`
fi
fi
本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)
相关文章推荐
- 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享
- EMC设计技巧及经验总结1:常用元件
- Shell开发的一些技巧和经验
- 总结ThinkPHP使用技巧经验分享(三)
- RESTful API设计技巧经验总结
- ASP.NET web开发经验技巧、工作总结
- [经验技巧] 【ROM移植教程】近期将其他机型rom移植到小米1的经验总结
- [总结] 常用Shell指令与技巧 [2012-02-08更新]
- 总结ThinkPHP使用技巧经验分享(二)
- EMC设计技巧及经验总结2:设计的基本原则
- <zz>matlab向量化技巧经验总结
- Shell开发的一些技巧和经验
- 总结ThinkPHP使用技巧经验分享(四)
- 经验技巧套路收获总结(附上ccf第二类中的三道)
- [收藏]Javascript关于日期的各种技巧和方法总结[欢迎补充]
- C#开发中总结的23个经验技巧
- 网友们总结使用blog的各种技巧和经验
- EXTJS项目实战经验总结一:日期组件的change事件:
- 天下会 - 搜索经验之网络搜索技巧总结
- Shell编程技巧总结