- 论坛徽章:
- 0
|
原帖由 bobuzhu 于 2008-12-2 17:14 发表 ![]()
输入日期格式是 YYWW (年年周周) 格式, 比如说 0823, 即为2008年的第23周, 以周日为每一周的第一天
想要转换成 YYMMDD (年年月月天天) 格式,日期可以取每一周的第一天。
请大家帮忙啊~~~ 谢谢!
- #!/bin/bash
- i=1
- while [ $i -le 12 ]
- do
- cal $i $1 | awk 'NR>=3&&$0{print '"$i"'"\t"$0}' >> tmp
- i=`expr $i + 1`
- done
- awk 'BEGIN{a=0;i='"$2"'}NR==1{a++;if(a==i){printf("%d%02d%02d",'"$1"',$1,$2);exit}}
- NR>1&&NF==8{a++;if(a==i){printf("%d%02d%02d",'"$1"',$1,$2);exit}}
- NR>1&&NF!=8{a++;if(a==i){printf("%d%02d%02d",'"$1"',$1,$2);exit}
- else{getline}}' tmp
- rm -f tmp
复制代码
不过输入格式是 xx.sh 2008 23
要想输入格式为0823就自己加点料了哈!
ps:gnu date里面有个%U是打印第几个周的,不过怎么把它反起用偶没试出来…… |
|