免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: wzl189189
打印 上一主题 下一主题

[文本处理] 急,有详细的说明,2个文本求和及合并的shell问题 [复制链接]

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
11 [报告]
发表于 2014-04-15 18:13 |只看该作者
  1. awk 'NR==FNR{a[$1"\t"$2]=$3;next}{b[$1"\t"$2]=b[$1"\t"$2]?b[$1"\t"$2]+$3:$3}END{for(i in a){s=b[i]?b[i]:0;print i"\t"a[i]"\t"s}}' b.txt a.txt
复制代码

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
12 [报告]
发表于 2014-04-15 18:14 |只看该作者
回复 10# wzl189189


    上面忘记点回复

论坛徽章:
0
13 [报告]
发表于 2014-04-15 23:35 |只看该作者
回复 11# rulebook


    非常感谢啊,这个我运行后是暂时没有问题,你这个写的很精炼了,想提个小要求,能不能解释下这行命令啊,我水平太低,看不懂

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
14 [报告]
发表于 2014-04-16 09:58 |只看该作者
回复 13# wzl189189


    awk 'NR==FNR{a[$1"\t"$2]=$3;next}{b[$1"\t"$2]=b[$1"\t"$2]?b[$1"\t"$2]+$33}END{for(i in a){s=b?b:0;print i"\t"a"\t"s}}' b.txt a.txt

先读b.txt 将第三列数据放到数组a中,数组下标是 [第一列\t第二列] 。
再读a.txt 将第三列数据放到数组b中,数组下标也是 [第一列\t第二列] 。这里将 下标相同的加在一起。
最后按 数组a的下标循环,显示下标相同的数组b的值,当数组b中不存在这个值时显示0.

论坛徽章:
0
15 [报告]
发表于 2014-04-23 00:50 |只看该作者
回复 11# rulebook


){s=b?b:0;print i"\t"a"\t"s}}   你好,请教下, 其中的  s=b  是不是写错了啊,我加了一个等号,即 s==b   发现结果也是对的

   还有就是为什么s第一次循环 打印的时候就有值呢? 不解啊
   

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
16 [报告]
发表于 2014-04-23 10:04 |只看该作者
回复 15# wzl189189


    你用s==b,那s应该没有值,显示不出来,你查查结果是不是少东西。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP