免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求个awk转换的语句 [复制链接]

论坛徽章:
39
双子座
日期:2014-08-06 17:37:19极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:0515-16赛季CBA联赛之新疆
日期:2018-05-04 11:29:30
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-05-15 17:28 |只看该作者 |倒序浏览
数据

时间                                   id                             num                  

2019-01-01                          1                           5
2019-01-01                          2                          11
2019-01-02                          1                            8
2019-01-02                          3                             9
....



需要的结果如下   id没有的插入0

时间\id                            1       2       3
2019-01-01                     5       11     0
2019-01-02                    8        0       9
...

论坛徽章:
0
2 [报告]
发表于 2019-05-15 18:34 |只看该作者
本帖最后由 jzsjm1002 于 2019-05-15 18:36 编辑
  1. cat file
  2. 时间                                   id                             num                  

  3. 2019-01-01                          1                           5
  4. 2019-01-01                          2                          11
  5. 2019-01-02                          1                            8
  6. 2019-01-02                          3                             9

  7. cat test.awk
  8. #!/usr/bin/awk -f
  9. #

  10. NR>1 && $0!~/^$/{
  11.   date[$1];id[$2];num[$1,$2]=$3
  12. }

  13. END{
  14.   PROCINFO["sorted_in"]="@ind_num_asc"
  15.   printf "时间\\id\t\t"
  16.   for(i in id)
  17.     printf i"\t"
  18.   print ""

  19.   for(x in date){
  20.     printf x"\t"
  21.     for(y in id)
  22.       printf "%d\t",num[x,y]!=""?num[x,y]:0
  23.     print ""
  24.   }
  25. }

  26. ./test.awk file
  27. 时间\id           1        2        3        
  28. 2019-01-01        5        11       0        
  29. 2019-01-02        8        0        9
复制代码

论坛徽章:
39
双子座
日期:2014-08-06 17:37:19极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:0515-16赛季CBA联赛之新疆
日期:2018-05-04 11:29:30
3 [报告]
发表于 2019-05-15 20:17 |只看该作者
回复 2# jzsjm1002

十分感谢

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
4 [报告]
发表于 2019-06-02 17:38 |只看该作者
感激2位帮忙
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP