AWK,Python 统计文本
博客专区 > jastme 的博客 > 博客详情
AWK,Python 统计文本
jastme 发表于4年前
AWK,Python 统计文本
  • 发表于 4年前
  • 阅读 38
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

摘要: 需求,读一个文件,在遇到某个字符后退出,然后统计前面每个字符串出现的次数
需求,读一个文件,在遇到某个字符后退出,然后统计前面每个字符串出现的次数


root@ubuntu001:~# cat test
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
1 3 5 6 7 8 9 1
2 3 5 6 7 8 9 1
1 2 4 5 6 8 9 d
12 33 55 667 999 4242 

awk历遍文本到指定字符串退出,统计

root@ubuntu001:~# awk '{for(i=1;i<=NF;i++){if( $i=="d" ){exit}else{a[$i]++}}}END{for(i in a){print i,a[i]}}' test
1 5
2 4
3 4
4 3
5 5
6 5
7 4
8 5
9 4

python统计;注释的地方为去重部分--》写入字典,再读字典,有点不科学了;

#!/usr/bin/python
# -*- coding:utf-8 -*-
f=open('/root/test','r')
a=''
b={}
for i in f.read():
    if 'd' in i:
        a=a+i[:i.index('d')]
        break
    else:
        a=a+i
m=list(set(list(a)))                             ###########    set可以对列表去重,好用
for n in m:
    print '%s Appeared %s number of times' %(n,a.count(n))
#for k in a:
#    if k==' ':
#        pass
#    elif k=='\n':
#        pass
#    else:
#        b[k]=a.count(k)
#for key,vaule in b.items():        
#    print '%s Appeared %s number of times' %(key,vaule[1])

root@ubuntu001:~# ./douniwan.py 
1 Appeared 5 number of times
3 Appeared 4 number of times
2 Appeared 4 number of times
5 Appeared 5 number of times
4 Appeared 3 number of times
7 Appeared 4 number of times
6 Appeared 5 number of times
9 Appeared 4 number of times
8 Appeared 5 number of times


共有 人打赏支持
粉丝 35
博文 122
码字总数 59358
×
jastme
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: