Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3031728
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-09-22 11:14:38

  1. echo "20110101" |awk 'function ch_times(time){cmd="date -d \""time"\" +%s";cmd|getline var;return var}{print ch_times($1)}'
[解析]
先用function关键字定义一个函数ch_times带一个形参time,然后花括号里的是把shell命令的内容复制给cmd这个变量,再通过管道用getline来获取cmd执行结果的值,然后再return返回这个函数执行的结果,最后再调用这个函数,发送形参,打印出返回的结果,就是该日期换算的秒数。


  1. echo "2011 09 21 16 32 15" |awk 'function ch_times(time){return mktime(time)}{print ch_times($0)}'
[解析]
这样的写法也是可以的,直接使用awk的内部函数mktime(),但是它对格式要求比较严格:YYYY MM DD HH MM SS[ DST]。所以在之前最好处理一下。

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