文档章节

AWK,Python 统计文本

jastme
 jastme
发布于 2014/06/26 09:12
字数 356
阅读 45
收藏 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


© 著作权归作者所有

共有 人打赏支持
jastme
粉丝 35
博文 133
码字总数 61506
作品 0
成都
程序员
Linux Shell学习简单小结

shelllinuxperformancefunctionfile if-fi [cpp] view plaincopyprint? #! /bin/bash # 删除文件 和 新建文件 file=readme function delFile(){ if [ -e ./$file ];then rm -f ./$file echo ......

Zero零_度
2015/04/08
0
0
python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)

前言:python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)。其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下。 apache脚本: ips = {}with ope...

sailikung
07/01
0
0
Hadoop兮,杀鸡别用牛刀,python+shell实现一般日志文件的查询、统计

简单的日志统计是不需要使用重量级的Hadoop,我用python实现了日志的统计。原理是用fabric登录到远程linux,组合使用grep、uniq、sort、awk对日志进行操作,可以根据正则表达式指定规则抽取符...

小水熊
2013/08/03
0
1
Python 练习册-题目解答参考

所有题目的链接在这里:[Python练习册-OSChina][1] 第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字 python库:大家都会说PIL,但是根据StackOverflow的建议,采用[Pillow...

NineRec
2015/01/03
0
0
Linu下获取python的版本号

1 在linux命令行底下通过python -V查看python版本号 suiyc@suiyc-A76GMV:~/sycworkspace/simple-sample$ python -V 2>&1 awk '{print $2}' 输出结果示例:2.7.3 2 直接在命令行中输入python ......

雪之丞
2014/10/08
0
2

没有更多内容

加载失败,请刷新页面

加载更多

Asus RamPage VI Extreme开不了机

Asus RamPage VI Extreme 的机器突然关机,然后就再也开不了机,没有任何反应。有人说是BIOS问题,可是这个连Bios都进不去的,按后面的刷新Bios、清除CMOS等都没有什么效果,没有任何反应。 ...

openthings
30分钟前
1
0
ubuntu 18.04 desktop 截图快捷键

如图,点击下方的 add shortcut 为这个快捷键命名 输入截图 command gnome-screenshot -a 设置快捷键 常用为 Ctrl - Alt + a 参考 http://os.51cto.com/art/200903/113091_all.htm...

公孙衍
39分钟前
0
0
一个六年Java程序员的从业总结:比起掉发,我更怕掉队

恍然间,发现自己在这个行业里已经摸爬滚打了五、六年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程中却遭到了重大的挫...

老道士
41分钟前
18
2
Spacemacs快捷键

由于Spacemacs快捷键太多,为方便使用,将常用的快捷键记录在此。 以下快捷键都是在emacs的evil模式下 Buffers操作 创建名称为<buffer-name>的buffer SPC b b <buffer-name> 从已打开的buf...

yxmsw2007
46分钟前
1
0
GO冒泡,二分查找

package mainimport("fmt")func main() {var arr [5]int = [5]int{11,13,9,2,25}maopao(&arr)fmt.Println("arr = ", arr) //[2 9 11 13 25]findIndex := binaryFind(&arr, 0......

汤汤圆圆
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部