免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk可以时间比大小不 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-09 10:10 |只看该作者 |正序浏览
如下日志
152     2016-3-7 9:30
152     2016-3-7 9:30
152     2016-3-7 19:5
152     2016-3-7 19:5
152     2016-3-8 9:21
152     2016-3-8 9:21
152     2016-3-8 18:41
152     2016-3-8 18:41
152     2016-3-9 9:23

怎么出来一天中最小的时间和最大的时间呢

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
13 [报告]
发表于 2016-05-06 10:59 |只看该作者
回复 12# 287380917


    是的, 就是你说的这样

论坛徽章:
2
操作系统版块每日发帖之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之八一
日期:2016-05-18 15:38:22
12 [报告]
发表于 2016-05-06 10:16 |只看该作者
回复 2# elu_ligao
初来乍到。s[$2]=e[$2]=$3这个是{s[$2]=e[$2];e[$2]=$3}的简写么?
还有个问题,你这个语句的作用应该是取得第一个和最后一个吧,而不是最小和最大。如果文本本身没有按时间排序就不对了吧


   

论坛徽章:
0
11 [报告]
发表于 2016-03-14 01:06 |只看该作者
本帖最后由 fathermotherson 于 2016-03-14 01:20 编辑

大神们写的都好复杂, 有木有简单点儿的..

论坛徽章:
6
羊年新春福章
日期:2015-03-03 17:16:28双子座
日期:2015-03-03 17:16:56巳蛇
日期:2015-03-03 17:17:2415-16赛季CBA联赛之福建
日期:2016-03-11 09:05:00黑曼巴
日期:2016-07-07 16:58:1215-16赛季CBA联赛之吉林
日期:2016-11-14 09:23:07
10 [报告]
发表于 2016-03-10 10:03 |只看该作者
  1. #!/bin/bash

  2. while read line
  3. do
  4.   num=`echo ${line}|awk '{print $1}'`
  5.   time=`echo ${line}|awk '{print $2,$3}'`
  6.   Time=`date -d "${time}" +%s`
  7.   echo ${num} ${Time} >> file1
  8. done < file

  9. start_time=`cat file1 |sort|head -1`
  10. stop_time=`cat file1|sort -r|head -1`

  11. print_start_num=`echo ${start_time}|awk '{print $1}'`
  12. print_start_Time=`echo ${start_time}|awk '{print $2}'`
  13. print_start_time=`date -d @${print_start_Time} +"%Y-%m-%d %H:%M"`
  14. echo ${print_start_num} ${print_start_time}

  15. print_stop_num=`echo ${stop_time}|awk '{print $1}'`
  16. print_stop_Time=`echo ${stop_time}|awk '{print $2}'`
  17. print_stop_time=`date -d @${print_stop_Time} +"%Y-%m-%d %H:%M"`
  18. echo ${print_stop_num} ${print_stop_time}
复制代码

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
9 [报告]
发表于 2016-03-10 09:47 |只看该作者
回复 8# tseesing
大神的我到现在还是没看太懂,,您的我到是看懂了,哈哈

   

论坛徽章:
0
8 [报告]
发表于 2016-03-09 12:02 |只看该作者
吸收点楼上大牛的精华,啰嗦点:
  1. [root@localhost tmp]# awk 'BEGIN {getline; min[$2]=$3; max[$2]=$3;getline; }  { if (! min[$2]) {min[$2]=$3; max[$2]=$3;} else { split(min[$2], mi); split(max[$2], ma); split($3, n); if ((mi[1] < n[1]) || (mi[1]==n[1] && mi[2] < n[2])) { min[$2]=$3;} else if ((ma[1] > n[1]) || (ma[1]==n[1] && ma[2] < n[2])) {max[$2]=$3;} }} END {for (i in min) {print i, min[i], max[i]}}' /tmp/a.txt
  2. 2016-3-7 9:30 19:5
  3. 2016-3-8 9:21 18:41
  4. 2016-3-9 9:23 9:23
  5. [root@localhost tmp]# cat /tmp/a.txt
  6. 152     2016-3-7 9:30
  7. 152     2016-3-7 9:30
  8. 152     2016-3-7 19:5
  9. 152     2016-3-7 19:5
  10. 152     2016-3-8 9:21
  11. 152     2016-3-8 9:21
  12. 152     2016-3-8 18:41
  13. 152     2016-3-8 18:41
  14. 152     2016-3-9 9:23
复制代码

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
7 [报告]
发表于 2016-03-09 11:23 |只看该作者
回复 6# elu_ligao

恩,是我搞错了,前面152,在文件里面还有其它的,我grep出来再用你脚本就OK了

   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
6 [报告]
发表于 2016-03-09 10:52 |只看该作者
回复 4# badb0y


    你这个不是你上面给的文本吧

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之上海
日期:2016-05-05 09:45:14
5 [报告]
发表于 2016-03-09 10:50 |只看该作者
回复 3# jason680

是一天当中的最大和最小,不是一个文本中的
   
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP