免费注册 查看新帖 |

Chinaunix

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

[文本处理] 再问统计不重复的项目问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-19 10:32 |只看该作者 |倒序浏览
有一个文件,想统计两种情况下$5不重复的个数
if(\!a[$1,$2,$3,$4,$5]++)an[$5]++————an[$5]
if($7~/      /&&\!a[$1,$2,$3,$4,$5]++)bn[$5]++————bn[$5]
nawk 'BEGIN{FS=OFS=";"}NR==FNR{if(\!a[$1,$2,$3,$4,$5]++)an[$5]++;else if($7~/      /&&\!a[$1,$2,$3,$4,$5]++)bn[$5]++;next}{print $0,an[$5],bn[$5]}' 1.txt 1.txt
仅计算了an[$5]的值,求前辈更正
>cat 1.txt
BJRNC18;SITE;BJS0978;1970-1-01;1970-1-01 08:03;1970-1-01 08:03:13;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC09;SITE;BJS5780;2012-10-08;2012-10-08 01:31;2012-10-08 01:31:24;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC08;SITE;BJN1050;2012-10-10;2012-10-10 02:03;2012-10-10 02:03:04;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost
BJRNC11;SITE;BJN0585;2012-10-21;2012-10-21 04:53;2012-10-21 04:53:43;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC10;SITE;BJN5890;2012-10-21;2012-10-21 16:02;2012-10-21 16:02:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC09;SITE;BJS6220;2012-11-02;2012-11-02 01:09;2012-11-02 01:09:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC14;SITE;BJN0768;2012-11-04;2012-11-04 16:29;2012-11-04 16:29:56;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC25;SITE;BJS6156;2012-11-09;2012-11-09 09:40;2012-11-09 09:40:02;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:15;2013-11-01 07:15:24;2013-11-1  07:15:32;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost


论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-11-19 10:40 |只看该作者
回复 1# conall


    你还是直接说需求吧,你的代码看不懂呀!!!!

论坛徽章:
0
3 [报告]
发表于 2013-11-19 10:41 |只看该作者
回复 2# 关阴月飞

分别统计
1、统计$1,$2,$3,$4,$5有几个不同的$5
2、统计$7包含空格情况下,$1,$2,$3,$4,$5有几个不同的$5

   

论坛徽章:
0
4 [报告]
发表于 2013-11-19 10:43 |只看该作者
分别统计
1、统计$5不重复的个数
2、统计$7包含空格情况下,$5不重复的个数

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2013-11-19 11:18 |只看该作者
我猜的:
  1. [root@localhost ~]# awk -F\; '!a[$1,$2,$3,$4,$5]++{m++;if($7~/^ *$/)n++}END{print m,n}' i
  2. 11 9
  3. [root@localhost ~]#
复制代码

论坛徽章:
0
6 [报告]
发表于 2013-11-19 11:19 |只看该作者
类似这样
nawk 'BEGIN{FS=OFS=";"}NR==FNR{if(!a[$1,$2,$3,$4,$5]++)an[$5]++;next}{print $0,an[$5]}' 1.txt 1.txt  > 2.txt
nawk 'BEGIN{FS=OFS=";"}NR==FNR{if($7~/      /&&\!b[$1,$2,$3,$4,$5]++)bn[$5]++;next}{print $0,bn[$5]}' 2.txt 2.txt
我想写在一行

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
7 [报告]
发表于 2013-11-19 11:29 |只看该作者
回复 6# conall
这样子吗?
  1. [root@localhost ~]# awk 'BEGIN{FS=OFS=";"}NR==FNR&&!a[$1,$2,$3,$4,$5]++{b[$5]++;if($7~/^ *$/)c[$5]++;next}{print $0,b[$5],c[$5]}' i i
  2. BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;1
  3. BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;
  4. BJRNC18;SITE;BJS0978;1970-1-01;1970-1-01 08:03;1970-1-01 08:03:13;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  5. BJRNC09;SITE;BJS5780;2012-10-08;2012-10-08 01:31;2012-10-08 01:31:24;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  6. BJRNC08;SITE;BJN1050;2012-10-10;2012-10-10 02:03;2012-10-10 02:03:04;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  7. BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost;1;1
  8. BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;1
  9. BJRNC11;SITE;BJN0585;2012-10-21;2012-10-21 04:53;2012-10-21 04:53:43;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  10. BJRNC10;SITE;BJN5890;2012-10-21;2012-10-21 16:02;2012-10-21 16:02:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  11. BJRNC09;SITE;BJS6220;2012-11-02;2012-11-02 01:09;2012-11-02 01:09:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  12. BJRNC14;SITE;BJN0768;2012-11-04;2012-11-04 16:29;2012-11-04 16:29:56;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  13. BJRNC25;SITE;BJS6156;2012-11-09;2012-11-09 09:40;2012-11-09 09:40:02;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
  14. BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:15;2013-11-01 07:15:24;2013-11-1  07:15:32;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;
  15. BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost;1;
  16. BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;
  17. [root@localhost ~]#
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
8 [报告]
发表于 2013-11-19 11:36 |只看该作者
回复 4# conall


    我也猜一个:
n为$5 不重复的次数, s为 $7 为空时 $5 不重复的次数。
  1. awk -F\; '!a[$5]++{++n} !(+$7){if(!b[$5]++)++s}END{print n,s}' 3
复制代码

论坛徽章:
0
9 [报告]
发表于 2013-11-19 11:46 |只看该作者
源文件:
>cat 1.txt
BJRNC18;SITE;BJS0978;1970-1-01;1970-1-01 08:03;1970-1-01 08:03:13;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC09;SITE;BJS5780;2012-10-08;2012-10-08 01:31;2012-10-08 01:31:24;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC08;SITE;BJN1050;2012-10-10;2012-10-10 02:03;2012-10-10 02:03:04;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost
BJRNC11;SITE;BJN0585;2012-10-21;2012-10-21 04:53;2012-10-21 04:53:43;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC10;SITE;BJN5890;2012-10-21;2012-10-21 16:02;2012-10-21 16:02:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC09;SITE;BJS6220;2012-11-02;2012-11-02 01:09;2012-11-02 01:09:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC14;SITE;BJN0768;2012-11-04;2012-11-04 16:29;2012-11-04 16:29:56;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC25;SITE;BJS6156;2012-11-09;2012-11-09 09:40;2012-11-09 09:40:02;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:15;2013-11-01 07:15:24;2013-11-1  07:15:32;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost
结果:
BJRNC18;SITE;BJS0978;1970-1-01;1970-1-01 08:03;1970-1-01 08:03:13;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC09;SITE;BJS5780;2012-10-08;2012-10-08 01:31;2012-10-08 01:31:24;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC08;SITE;BJN1050;2012-10-10;2012-10-10 02:03;2012-10-10 02:03:04;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost;1;1
BJRNC25;SITE;BJS0860;2012-10-19;2012-10-19 04:23;2012-10-19 04:23:53;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;1
BJRNC11;SITE;BJN0585;2012-10-21;2012-10-21 04:53;2012-10-21 04:53:43;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC10;SITE;BJN5890;2012-10-21;2012-10-21 16:02;2012-10-21 16:02:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC09;SITE;BJS6220;2012-11-02;2012-11-02 01:09;2012-11-02 01:09:23;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC14;SITE;BJN0768;2012-11-04;2012-11-04 16:29;2012-11-04 16:29:56;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC25;SITE;BJS6156;2012-11-09;2012-11-09 09:40;2012-11-09 09:40:02;                  ;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,EthernetSwitch=1,EthernetSwitchPort=6;3151;Ethernet Switch Port Fault;1;1
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:15;2013-11-01 07:15:24;2013-11-1  07:15:32;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3101;Contact to Default Router 0 Lost;1;
BJRNC30;SITE;BJN5584;2013-11-01;2013-11-01 07:23;2013-11-01 07:23:49;2013-11-1  07:23:56;Subrack=1,Slot=2,PlugInUnit=1,ExchangeTerminalIp=1,InternalEthernetPort=1,IpInterface=1;3102;Contact to Default Router 1 Lost;1;

论坛徽章:
0
10 [报告]
发表于 2013-11-19 11:49 |只看该作者
回复 7# yestreenstars


正解

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP