免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4127 | 回复: 13
打印 上一主题 下一主题

[文本处理] 脚本 时间戳转换 [复制链接]

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-04 16:44 |只看该作者 |倒序浏览
数据格式是这样的,写个脚本,把这些转换成时间戳,然后每一行这两列相减。请问怎么做
20140303150005 20140303150012
20140303150020 20140303150030
20140303150025 20140303150031
20140303150033 20140303150037
20140303150042 20140303150047
20140303150043 20140303150053
20140303150051 20140303150058
20140303150059 20140303150105
20140303150107 20140303150110
20140303150118 20140303150125
20140303150229 20140303150532
20140303150332 20140303150347
20140303150348 20140303150547
20140303150359 20140303150431
20140303150403 20140303150412
20140303150406 20140303150420
20140303150408 20140303150414
20140303150416 20140303150423
20140303150437 20140303150700
20140303150439 20140303150912
20140303150440 20140303150451
20140303150448 20140303150745
20140303150510 20140303150519
20140303150521 20140303150533
20140303150522 20140303150528
20140303150529 20140303150538
20140303150541 20140303150548
20140303150541 20140303150552
20140303150546 20140303150553
20140303150547 20140303150554
20140303150602 20140303150808
20140303150617 20140303150622
20140303150650 20140303150721
20140303150653 20140303150703
20140303150700 20140303150712

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2014-03-04 16:46 |只看该作者
你自己有没有想过思路呢?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2014-03-04 16:52 |只看该作者
你昨天才问了一个时间戳的问题,大伙都已经告诉你怎么转换了,现在这个只需要做简单的减法,你都不会,这就是传说中的伸手党么?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-03-04 16:56 |只看该作者
只问不回,非礼也...

帖子    3
主题    3

论坛徽章:
3
摩羯座
日期:2014-03-05 14:58:52巨蟹座
日期:2014-04-03 15:14:32摩羯座
日期:2014-04-24 12:50:34
5 [报告]
发表于 2014-03-04 16:59 |只看该作者
  1. $ awk -vFIELDWIDTHS="4 2 2 2 2 2 1 4 2 2 2 2 2" '{print mktime($8" "$9" "$10" "$11" "$12" "$13) - mktime($1" "$2" "$3" "$4" "$5" "$6)}' urfile
  2. 7
  3. 10
  4. 6
  5. 4
  6. 5
  7. 10
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
6 [报告]
发表于 2014-03-04 17:02 |只看该作者
回复 4# jason680

这就是伸手党的证据~
   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
7 [报告]
发表于 2014-03-04 17:05 |只看该作者
本帖最后由 huang6894 于 2014-03-04 17:07 编辑

额。。。冒个泡~
p.s 我也是个伸手党
  1. awk '{t=gensub(/(..)/,"\\1 ","g",$1);p=gensub(/(..)/,"\\1 ","g",$2);sub(" ","",t);sub(" ","",p);print $1"=>"mktime(t)"\t"$2"=>"mktime(p)"\t"mktime(p)-mktime(t)}' hh
  2. 20140303150005=>1393830005      20140303150012=>1393830012      7
  3. 20140303150020=>1393830020      20140303150030=>1393830030      10
  4. 20140303150025=>1393830025      20140303150031=>1393830031      6
  5. 20140303150033=>1393830033      20140303150037=>1393830037      4
  6. 20140303150042=>1393830042      20140303150047=>1393830047      5
  7. 20140303150043=>1393830043      20140303150053=>1393830053      10
  8. 20140303150051=>1393830051      20140303150058=>1393830058      7
  9. 20140303150059=>1393830059      20140303150105=>1393830065      6
  10. 20140303150107=>1393830067      20140303150110=>1393830070      3
  11. 20140303150118=>1393830078      20140303150125=>1393830085      7
  12. 20140303150229=>1393830149      20140303150532=>1393830332      183
  13. 20140303150332=>1393830212      20140303150347=>1393830227      15
  14. 20140303150348=>1393830228      20140303150547=>1393830347      119
  15. 20140303150359=>1393830239      20140303150431=>1393830271      32
  16. 20140303150403=>1393830243      20140303150412=>1393830252      9
  17. 20140303150406=>1393830246      20140303150420=>1393830260      14
  18. 20140303150408=>1393830248      20140303150414=>1393830254      6
  19. 20140303150416=>1393830256      20140303150423=>1393830263      7
  20. 20140303150437=>1393830277      20140303150700=>1393830420      143
  21. 20140303150439=>1393830279      20140303150912=>1393830552      273
  22. 20140303150440=>1393830280      20140303150451=>1393830291      11
  23. 20140303150448=>1393830288      20140303150745=>1393830465      177
  24. 20140303150510=>1393830310      20140303150519=>1393830319      9
  25. 20140303150521=>1393830321      20140303150533=>1393830333      12
  26. 20140303150522=>1393830322      20140303150528=>1393830328      6
  27. 20140303150529=>1393830329      20140303150538=>1393830338      9
  28. 20140303150541=>1393830341      20140303150548=>1393830348      7
  29. 20140303150541=>1393830341      20140303150552=>1393830352      11
  30. 20140303150546=>1393830346      20140303150553=>1393830353      7
  31. 20140303150547=>1393830347      20140303150554=>1393830354      7
  32. 20140303150602=>1393830362      20140303150808=>1393830488      126
  33. 20140303150617=>1393830377      20140303150622=>1393830382      5
  34. 20140303150650=>1393830410      20140303150721=>1393830441      31
  35. 20140303150653=>1393830413      20140303150703=>1393830423      10
  36. 20140303150700=>1393830420      20140303150712=>1393830432      12
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [报告]
发表于 2014-03-04 17:10 |只看该作者
回复 7# huang6894

make a stamp function is good for programming and easy to know what you want

awk 'function stamp{ ...; return mktime(...) }{print stamp($2)-stamp($1)}
   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
9 [报告]
发表于 2014-03-04 17:14 |只看该作者
回复 7# huang6894

至少你已经学会自己写脚本了~
脚本可以稍微优化一下,用循环来代替重复性的任务:
  1. awk '{for(i=0;i++<NF;){$i=gensub(/(..)/,"\\1 ","g",$i);sub(/ /,"",$i)};print mktime($2)-mktime($1)}'
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2014-03-04 17:16 |只看该作者
  1. while read c1 c2; do
  2.     t1=`date -d "${c1:0:8} ${c1:8:2}:${c1:10:2}:${c1:12:2}" +%s`
  3.     t2=`date -d "${c2:0:8} ${c2:8:2}:${c2:10:2}:${c2:12:2}" +%s`
  4.     let t3=t2-t1
  5.     echo $t1 $t2 $t3
  6. done < a.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP