亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6724 | 回復: 9
打印 上一主題 下一主題

[文本處理] awk統(tǒng)計重復和不重復的個數(shù) [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-06-01 15:55 |只看該作者 |倒序瀏覽
在1列相同的條件下,awk統(tǒng)計第2列的不重復個數(shù)
在1、2列值同時相同的條件下,awk統(tǒng)計第3列的重復個數(shù)
cat a.txt
W6;WA;T0
W6;WA;T1
W6;WB;T4
W6;WB;T5
W6;WB;T6
想得到結果
W6;WA;T0;2;2
W6;WA;T1;2;2
W6;WB;T4;2;3
W6;WB;T5;2;3
W6;WB;T6;2;3

現(xiàn)在僅得出重復的個數(shù)
nawk  'BEGIN{OFS=FS=";"}NR==FNR{a[$1]++;b[$2]++;next}{print $0,a[$1],b[$2]}' 1.txt 1.txt
能否幫忙修改一下?謝謝

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
2 [報告]
發(fā)表于 2013-06-01 16:52 |只看該作者
回復 1# conall
  1. awk 'BEGIN{FS=OFS=";"}NR==FNR{if(!a[$1,$2]++)an[$1]++;if(!b[$1,$2,$3]++)bn[$1,$2]++;next}{print $0,an[$1],bn[$1,$2]}' input input
復制代碼

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
3 [報告]
發(fā)表于 2013-06-01 17:11 |只看該作者
@conall
  1. awk  'BEGIN{OFS=FS=";"}NR==FNR{if(!b[$1$2]++)a++;next}{ print $0,a,b[$1$2]}' a a
復制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2013-06-01 22:56 |只看該作者
其實之前論壇有個關于awk 關于統(tǒng)計不重復的案例,
awk '{a[$1]++}!b[$0]++{c[$1]++}END{for (i in a)print i,a[i],c[i]}' file ————————運行出現(xiàn)“b[: Event not found.”的錯誤.此例子運行也是這樣,b[: Event not found.

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
5 [報告]
發(fā)表于 2013-06-02 14:13 |只看該作者
回復 4# conall
我google了一下,當!被當作history命令時,可能出現(xiàn)這種錯誤。
你檢查一下:
1.是單引號不要用雙引號。
2.在!前面加\試試。

論壇徽章:
0
6 [報告]
發(fā)表于 2013-06-03 11:57 |只看該作者
謝謝cao627,井蛙夏蟲,在!前面加\解決
awk  'BEGIN{OFS=FS=";"}NR==FNR{if(\!b[$1$2]++)a++;next}{ print $0,a,b[$1$2]}' a a
但是,若改下條件:
1。在1列相同的條件下,awk統(tǒng)計第2列的不重復個數(shù)
2。在1、2列值同時相同的條件下,awk統(tǒng)計第3列的不重復個數(shù)
3.統(tǒng)計1列重復的個數(shù)
cat a.txt
W6;WA;T0
W6;WA;T1
W6;WB;T4
W6;WB;T5
W6;WB;T6
想得到結果
W6;WA;T0;2;2;5
W6;WA;T1;2;2;5
W6;WB;T4;2;3;5
W6;WB;T5;2;3;5
W6;WB;T6;2;3;5

論壇徽章:
0
7 [報告]
發(fā)表于 2013-06-03 12:04 |只看該作者
nawk 'BEGIN{FS=OFS=";"}NR==FNR{ if(c[$1]++)cn[$1]++;if(\!a[$1,$2]++)an[$1]++;if(\!b[$1,$2,$3]++)bn[$1,$2]++;next}{print $0,an[$1],bn[$1,$2],cn[$1]}' 1.txt 1.txt
W6;WA;T0;2;2;4
W6;WA;T1;2;2;4
W6;WB;T4;2;3;4
W6;WB;T5;2;3;4
W6;WB;T6;2;3;4

怎么都是4而不是5?

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
8 [報告]
發(fā)表于 2013-06-03 12:35 |只看該作者
回復 7# conall
統(tǒng)計1列重復的個數(shù):
直接cn[$1]++;不需要條件判斷

   

論壇徽章:
0
9 [報告]
發(fā)表于 2013-06-03 12:48 |只看該作者
嗯,謝謝!但是如果判斷也不會有問題?!怎么會差一個呢?能告訴閣下的QQ嗎?謝謝

論壇徽章:
4
白羊座
日期:2013-09-17 21:59:30技術圖書徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40雙子座
日期:2013-12-17 18:26:39
10 [報告]
發(fā)表于 2013-06-03 13:04 |只看該作者
回復 9# conall
如果判斷的話,第一次時c[$1]為0,條件不成立,所以少加一次。
我很少使用QQ。


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP