免费注册 查看新帖 |

Chinaunix

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

awk统计两个文件中某列重复的个数 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-05-20 08:46 |只看该作者
回复 10# zooyo


    a文件中WM5320在b文件中确实出现两次啊
cat a
RXOTG-42;WM5320;59
RXOTG-40;WM5320;59
RXOTG-41;WM5320;56
cat b
59;WM5320
56;WM5320

所以结果就是
RXOTG-42;WM5320;59;2
RXOTG-40;WM5320;59;2
RXOTG-41;WM5320;56;2

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
12 [报告]
发表于 2011-05-20 12:53 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
13 [报告]
发表于 2011-05-20 14:24 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
14 [报告]
发表于 2011-05-20 14:30 |只看该作者
回复 13# zooyo

论坛徽章:
0
15 [报告]
发表于 2011-05-20 21:07 |只看该作者
MaskRay 前辈的代码不行,where27 前辈的可行,awk  'BEGIN{OFS=FS=";"}NR==FNR{count[$2]++;next}$(NF+1)= ...
conall 发表于 2011-05-19 10:34
  1. awk  'BEGIN{OFS=FS=";"}NR==FNR{count[$2]++;next}$(NF+1)=count[$2]' b.txt a.txt
复制代码
这个恐怕不行,如何在b.txt中没有出现的行,就不会显示出来!

awk -F';' 'NR==FNR{a[$2]++;next;}{if(!a[$2])a[$2]=0;print $0";"a[$2]}' b.txt a.txt

论坛徽章:
0
16 [报告]
发表于 2011-05-20 21:42 |只看该作者
回复  conall
zooyo 发表于 2011-05-20 12:53
  1. awk -F";" '{system("grep -c "$2" b")}1' a | sed 'N;s/\n/ /' | awk '{$0=$2";"$1}1'
复制代码
按你的思路简化一下,避免重复!

awk -F";" '{if(!cou[$2]) "grep -c "$2" bb"|getline cou[$2];print $0";"cou[$2];}' aa

论坛徽章:
0
17 [报告]
发表于 2011-05-22 23:05 |只看该作者

  1. awk -F';' -vOFS=";" 'FNR==NR{a[$2]++;next}{print $0,a[$2]?a[$2]:0}' b a
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP