免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5009 | 回复: 1

[日期时间] awk 提取日志文件中最大时间戳 [复制链接]

论坛徽章:
0
发表于 2021-10-28 13:13 |显示全部楼层
基础文件urfile01
==================
user01
user02
user03


用户user*登录日志文件urfile02
==============================
Thu Oct 28 03:45:03 2021 user01
Thu Oct 28 03:42:03 2021 user01
Thu Oct 28 03:40:03 2021 user01
Thu Oct 28 03:50:03 2021 user02

想要获取的结果是,
1. 在日志文件中有记录的用户获取最大时间的一条记录
2. 在日志文件中没有记录的用户,指定一个时间戳,例如 2021/01/01 00:00:00

结果显示
user01 Thu Oct 28 03:45:03 2021
user02 Thu Oct 28 03:50:03 2021
user03 2021/01/01 00:00:00

这个通过AWK命令如何实现?

论坛徽章:
24
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-03 16:56:4615-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:1915-16赛季CBA联赛之深圳
日期:2018-06-15 14:59:37
发表于 2021-11-19 14:57 |显示全部楼层
回复 1# ontherd


  1. cat 1
  2. user01
  3. user02
  4. user03

  5. cat 2
  6. Thu Oct 28 03:45:03 2021 user01
  7. Thu Oct 28 03:42:03 2021 user01
  8. Thu Oct 28 03:40:03 2021 user01
  9. Thu Oct 28 03:50:03 2021 user02

  10. awk 'BEGIN{a="2021/01/01 00:00:00";b["Jan"]=1;b["Feb"]=2;b["Mar"]=3;b["Apr"]=4;b["May"]=5;b["Jun"]=6;b["Jul"]=7;b["Aug"]=8;b["Sep"]=9;b["Oct"]=10;b["Nov"]=11;b["Dec"]=12}FILENAME==ARGV[1]{split($0,c,"[ :]");d=mktime(""c[7]" "b[c[2]]" "c[3]" "c[4]" "c[5]" "c[6]"");e=$6;if(f[e]<d){f[e]=d;NF=NF-1;g[e]=$0}}FILENAME==ARGV[2]{print $1,g[$1]?g[$1]:a}' 2 1
  11. user01 Thu Oct 28 03:45:03 2021
  12. user02 Thu Oct 28 03:50:03 2021
  13. user03 2021/01/01 00:00:00
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP