Chinaunix首页 | 论坛 | 博客
  • 博客访问: 348014
  • 博文数量: 26
  • 博客积分: 495
  • 博客等级: 下士
  • 技术积分: 562
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-26 13:50
文章分类

全部博文(26)

文章存档

2015年(9)

2014年(6)

2013年(7)

2012年(2)

2011年(2)

分类:

2012-03-09 11:17:33

比如20105050就不是日期,20101001是。
8位数存在文件里面,耍着玩而已了,O(∩_∩)O

用法:awk -f test.awk ufile

  1. #!/bin/awk -f
  2. #name : test.awk

  3. function check(year){ if(year%4==0 && year%100!=0 || year%400==0){return 29}
  4.                   else { return 28}
  5.    }
  6.                   
  7. BEGIN{a["01"]=a["03"]=a["05"]=a["07"]=a["08"]=a["10"]=a["12"]=31;a["04"]=a["06"]=a["09"]=a["11"]=30 }

  8. {y= substr($1,1,4);m=substr($1,5,2);d=substr($1,7,2)
  9. a["02"]=check(y)

  10. if(length($1)!=8){next}

  11. {if(m+0>=1&&m+0<=12)
  12.       
  13.         {     if(d+0<=a[m]+0)
  14.                      print $1 "  is a valid date number"
  15.          }
  16.    }
  17. }

以上仅是娱乐而已,更好的是这个:

cal ${1:4:2} ${1:0:4}|sed -r 's/\<.\>/0&/g'|grep -qo "\<${1:6:2}\>" && echo yes || echo no

阅读(1433) | 评论(0) | 转发(0) |
0

上一篇:一些有用的shell

下一篇:python 生成html文件

给主人留下些什么吧!~~