比如20105050就不是日期,20101001是。
8位数存在
文件里面,耍着玩而已了,O(∩_∩)O
用法:
awk -f test.awk ufile
- #!/bin/awk -f
- #name : test.awk
- function check(year){ if(year%4==0 && year%100!=0 || year%400==0){return 29}
- else { return 28}
- }
-
- 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 }
- {y= substr($1,1,4);m=substr($1,5,2);d=substr($1,7,2)
- a["02"]=check(y)
- if(length($1)!=8){next}
- {if(m+0>=1&&m+0<=12)
-
- { if(d+0<=a[m]+0)
- print $1 " is a valid date number"
- }
- }
- }
以上仅是娱乐而已,更好的是这个:
cal ${1:4:2} ${1:0:4}|sed -r 's/\<.\>/0&/g'|grep -qo "\<${1:6:2}\>" && echo yes || echo no
阅读(2161) | 评论(0) | 转发(1) |