Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1092655
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类:

2010-11-03 10:36:14

比如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

阅读(2161) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~