免费注册 查看新帖 |

Chinaunix

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

[文本处理] 请教一个awk数组的问题 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-12 10:43 |只看该作者 |倒序浏览
本帖最后由 pop44944 于 2015-02-12 10:46 编辑

我要处理一个文本,如下:
  1. 1       1.csv
  2. 1       disk.csv
  3. 1       disk.txt
  4. 482     FP130111_OHKUMA
  5. 348     FP130119_rotari
  6. 2000    FP130205_OHKUMA1KIKA
  7. 159     FP130301_DSJ
  8. 547     FP130301_SisanKanri1
  9. 446     FP130301_SisanKanri2
  10. 10285   FP130327_Ipack_seihi
  11. 1152    FP130327_Ipack_seihi.zip
  12. 236     FP130523_FHMSYK
  13. 167     FP130523_Ticket
  14. 332     FP130524_FwDevelopme
  15. 3543    FP130702_quanshitong
  16. 339     FP130704_ohkumadoor
  17. 1       FP130828_OOKUMA3
  18. 4866    FP130829_PB2J2
  19. 4594    FP130916_FHwebsite
  20. 4290    FP130916_FHwebsite.zip
  21. 1779    FP131101_NETTUUHAN
  22. 71      FP131111_NYTKR_MT
  23. 6048    FP131113_K_MARUHO
  24. 1157    FP140121_KMS
  25. 12      FP140306_xrq_sales
  26. 8       FP140317_TFMJ_zaiku
  27. 3053    FP140320_MobileMSG
  28. 265     FP140326_TSKR1
  29. 248     FP140326_TSKR2
  30. 4952    FP140416_RTGS_DOC
  31. 2531    FP140416_RTGS_Source
  32. 845     FP140508_WIOJT
  33. 1       FP140515_SAVEDOC
  34. 10285   FP140521_QFK_CON
  35. 1017    FP140522_PADPOS
  36. 79      FP140701_NJSYJ
  37. 23      FP140730_DROR
  38. 1504    FP140825_YBK
  39. 1       FZ130726_ALMS
  40. 202     FZ130726_BOFTEC
  41. 1       FZ130726_CRM3
  42. 1       FZ130726_EASPS
  43. 1       FZ130726_ECMS
  44. 1       FZ130726_FBTS
  45. 126     FZ130726_FSKS
  46. 491     FZ130726_GTKR
  47. 1       FZ130726_JXC
  48. 74      FZ130726_KTKR
  49. 268     FZ130726_MASTER
  50. 5767    FZ130726_OBTS
  51. 1       FZ130726_QDSP
  52. 89      FZ130726_SKUP
  53. 172     FZ130726_TSKR
  54. 83      FZ130806_ohkumadoor
  55. 296     FZ130815_FHDS
  56. 221     FZ130828_OKUMAEC
  57. 301     FZ131113_NEXP
  58. 10091   FZ1311_EConferenceTV
复制代码
把第一列的数据看作A1列,第二列的数据看作A2列。A1列的数字循环相加,相加结果对应的A2的名称,放入C1的文本文件中。如果相加大于4000的,或者文件本身大于4000的放入C2中,怎么写脚本啊,希望高手能够不吝赐教。想的脑袋都大了,告诉我方法就行。我自己再去研究。

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
2 [报告]
发表于 2015-02-12 11:51 |只看该作者
看着像是du -b *的结果,但是完全没看懂LZ的需求

论坛徽章:
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
3 [报告]
发表于 2015-02-12 12:07 |只看该作者
以顶楼的数据为例,你希望的完整结果发出来看看

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
4 [报告]
发表于 2015-02-12 13:10 |只看该作者
  1. awk '{a[$2]+=$1}END{for(i in a){print i,a[i] > "C1" ; if(a[i]>4000)print i, a[i] > "C2"}}' file
复制代码
目测是这个意思..

求职 : 机器学习
论坛徽章:
79
2015年亚洲杯纪念徽章
日期:2015-05-06 19:18:572015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之阿尔纳斯尔
日期:2015-09-07 09:30:232015亚冠之萨济拖拉机
日期:2015-10-21 08:26:3915-16赛季CBA联赛之浙江
日期:2015-12-30 09:59:1815-16赛季CBA联赛之浙江
日期:2016-01-10 12:35:21技术图书徽章
日期:2016-01-15 11:07:2015-16赛季CBA联赛之新疆
日期:2016-02-24 13:46:0215-16赛季CBA联赛之吉林
日期:2016-06-26 01:07:172015-2016NBA季后赛纪念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16赛季CBA联赛之浙江
日期:2017-07-18 13:41:54
5 [报告]
发表于 2015-02-12 13:24 |只看该作者
六神,目测你对了回复 4# reyleon


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2015-02-12 13:29 |只看该作者
@dn833 以上数据确实是du的结果。
@SHELL_HAT 以上边的数据为例:A1=1 A2=1.csv B1=1 B2=disk.csv……,A1+B1+……N1<4000,把A1,B1……N1写入到C1.txt中,如果N1>4000,放入另一个文件。
@reyleon 看着有点像,我试试啊。谢谢。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2015-02-12 13:30 |只看该作者
是du -sm * 的结果回复 2# dn833


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2015-02-12 13:31 |只看该作者
以上边的数据为例:A1=1 A2=1.csv B1=1 B2=disk.csv……,A1+B1+……N1<4000,把A1,B1……N1写入到C1.txt中,如果N1>4000,放入另一个文件。回复 3# Shell_HAT


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2015-02-12 13:36 |只看该作者
就是有个问题,有的文件大于4000的,需要单独放到一个文件里。总之谢谢了。回复 4# reyleon


   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
10 [报告]
发表于 2015-02-12 14:15 |只看该作者
回复 9# pop44944


    awk '$1>4000 {print >"C2"}'    ???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP