文本中的条目统计 求方法

sh/bash/dash/ksh/zsh等Shell脚本
回复
zeng8809
帖子: 19
注册时间: 2010-07-06 23:58
送出感谢: 2 次
接收感谢: 0

文本中的条目统计 求方法

#1

帖子 zeng8809 » 2012-03-30 17:43


例如文本a.txt里有这样的内容:
Mary Ma
Luffy Zeng
Zoro Ye
Luffy Zeng
Mary Ma
Luffy Zeng
请问怎么样统计文本中条目,输出以下内容:
Mary Ma:2
Luffy Zeng:3
Zoro Ye:1
请教有什么好方法进行统计??谢谢~~
zeng8809
帖子: 19
注册时间: 2010-07-06 23:58
送出感谢: 2 次
接收感谢: 0

Re: 文本中的条目统计 求方法

#2

帖子 zeng8809 » 2012-03-30 18:04

求各位路过的大牛回答一下呀...~~~~(>_<)~~~~
谢宝良
帖子: 1981
注册时间: 2010-05-01 21:23
送出感谢: 4 次
接收感谢: 21 次

Re: 文本中的条目统计 求方法

#3

帖子 谢宝良 » 2012-03-30 18:07

利用脚本。
用list和set容器,可以做到。
头像
lilydjwg
论坛版主
帖子: 4164
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 文本中的条目统计 求方法

#4

帖子 lilydjwg » 2012-03-30 18:31

代码: 全选

sort | uniq -c
这样就差不多了。或者用 Awk 的数组来计数更好(如果数据非常多的话)。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: 文本中的条目统计 求方法

#5

帖子 aerofox » 2012-03-30 19:08

awk 的例子:

代码: 全选

#!/usr/bin/awk -f
        {
            count[$0]++
        }
END     {
            for (item in count) print item  ":", count[item]
        }
这些用户感谢了作者 aerofox 于这个帖子:
kingkongmok (2012-04-06 11:36)
评价: 3.7%
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 文本中的条目统计 求方法

#6

帖子 eexpress » 2012-03-30 19:16

代码: 全选

● xsel -o|perl -e 'while(<>){$a{$_}+=1;};while(($k,$v)=each %a){chomp $k;print "$k=>$v\n"};'
Mary Ma=>2
Luffy Zeng=>1
Zoro Ye=>1
Luffy Zeng=>2
文字处理,没跟perl叫板的。
你那行有啥不对的字符。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 文本中的条目统计 求方法

#7

帖子 eexpress » 2012-03-30 19:29

代码: 全选

● xsel -o|perl -e 'while(<>){chomp; $a{$_}+=1;};while(($k,$v)=each %a){print "$k=>$v\n"};'
Zoro Ye=>1
Luffy Zeng=>3
Mary Ma=>2
xsel的回车影响了。
● 鸣学
头像
lxr1234
帖子: 721
注册时间: 2009-04-10 11:15
来自: 三民主义国国民权利省我的选择市中共下台镇
送出感谢: 0
接收感谢: 14 次

Re: 文本中的条目统计 求方法

#8

帖子 lxr1234 » 2012-03-30 20:53

学习了,好贴
强烈反对M$的ARM Secure Boot 锁定要求,大家请签名反对
http://www.fsf.org/campaigns/secure-boo ... cted-boot/
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08
送出感谢: 1 次
接收感谢: 2 次

Re: 文本中的条目统计 求方法

#9

帖子 Think1st » 2012-03-30 21:12

lilydjwg 写了:

代码: 全选

sort | uniq -c
这样就差不多了。或者用 Awk 的数组来计数更好(如果数据非常多的话)。
这个就差不多了。
在这里,问题比答案更抢手。
头像
mjp123
帖子: 696
注册时间: 2009-04-09 15:06
送出感谢: 2 次
接收感谢: 12 次

Re: 文本中的条目统计 求方法

#10

帖子 mjp123 » 2012-03-30 23:00

aerofox 写了:awk 的例子:

代码: 全选

#!/usr/bin/awk -f
        {
            count[$0]++
        }
END     {
            for (item in count) print item  ":", count[item]
        }
这个优雅。
回复

回到 “Shell脚本”