最近在看shell中有个题目为统计单词的个数,使用了awk功能,代码如下

#!/bin/bash

if [ $# -ne ];then

echo "Usage:basename $0 filename"

exit

fi

filename=$

egrep -o "[a-zA-Z]+" $filename |

awk '{count[$0]++}

END{printf "%-14s %s\n","Word","Count"

for(i in count)printf "%-14s %s\n",i,count[i]|"sort -nrk 2"}'

使用正则来匹配,+表示1个多个

结果如下:

[root@localhost shellcookbook]# sh word_freq.sh item.txt

Word Count

Tennis

Sports

Racket

Printer

Office

Laser

Video

Refrigerator

Player

MP

HD

Camcorder

Audio

Appliance

正好在学习python,顺便拿python实现一下吧,代码如下:

#!/usr/bin/env python

import sys,re

if len(sys.argv[0:]) != 2:

print "Usage:%s file" % sys.argv[0]

sys.exit(0)

try:

filename=sys.argv[1]

with open(filename) as f:

data=f.read()

except IOError:

print "Please check %s is Exised!" % filename

exit(0)

except Exception,e:

print e

sys.exit()

patten=r'[a-zA-Z]+'

words=re.findall(patten,data)

#print sorted([(i,words.count(i)) for i in set(words)],cmp=lambda x,y:cmp(x[1],y[1]),reverse=True)

wordcounts=sorted([(i,words.count(i)) for i in set(words)],key=lambda x:x[1],reverse=True)

print "%-14s %s" % ("Word","Counts")

for word,counts in wordcounts:

print "%-14s %s" % (word,counts)

使用的也是正则先匹配出来后,再用sorted进行排序并计算出来个数,结果如下:

[root@localhost shellcookbook]# python word_freq_py.py item.txt

Word Counts

Printer 2

Laser 2

Office 2

Tennis 2

Sports 2

Racket 2

Appliance 1

Player 1

Video 1

HD 1

Audio 1

Camcorder 1

Refrigerator 1

MP 1

我们来看看这二个对比,程序效率如何:

# time sh word_freq.sh item.txt

real 0m0.007s

user 0m0.003s

sys 0m0.005s

time python word_freq_py.py item.txt

real 0m0.035s

user 0m0.031s

sys 0m0.004s

对比来看,shell程序更快,主要是使用了awk提高了效率。所以在linux下写的小程序时,shell能实现,还是使用shell实现,python辅助。

使用tuple统计文件中单词的个数

name = input("Enter file:") if len(name) < 1 : name = "input.txt" fhand = ope ...

学c语言做练习之&ZeroWidthSpace;统计文件中字符的个数

统计文件中字符的个数(采用命令行参数) #include #include int main(int argc, char *argv[] ...

JAVA实验--统计文章中单词的个数并排序

分析: 1)要统计单词的个数,就自己的对文章中单词出现的判断的理解来说是:当出现一个非字母的字符的时候,对前面的一部分字符串归结为单词 2)对于最后要判断字母出现的个数这个问题,我认为应该是要用到ma ...

C语言算法--统计字符串中单词的个数

#include #include #include int main(void) { int le ...

Python 统计文本中单词的个数

1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...

Linux统计文件中单词出现的次数

grep -E "\b[[:alpha:]]+\b"  /etc/fstab  -o | sort | uniq -c 或 awk '{for(i=1;i

Scala快速统计文件中特定单词,字符的个数

val fileContent=Source.fromFile("/home/soyo/桌面/ss5.txt").getLines.mkString(",") ...

sort &plus;awk&plus;uniq 统计文件中出现次数最多的前10个单词

实例cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 统计文件中出现次数最多的前10个单 ...

java统计文本中单词出现的个数

package com.java_Test; import java.io.File; import java.util.HashMap; import java.util.Iterator; imp ...

随机推荐

Windows台的FailOver群集简介

首先,您需要有一些服务器硬件方面知识. 我们介绍Windows平台的FailOver群集,以多个站点场景为例,如下图示: 八个结点NODE,Windows的FailOver群集,依赖SAN存储同步各个 ...

ArrayList、Vector、HashMap、HashTable、HashSet的默认初始容量、加载因子、扩容增量

这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全 ...

string相关

1.find相关 string s="abcd"; size_t pos0 = s.find_first_of("dcb");         1    //返 ...

LeetCode &lpar;13&rpar;&colon; 3Sum Closest

https://leetcode.com/problems/3sum-closest/ [描述] Given an array S of n integers, find three integers ...

hdu 2642 Stars

Problem Description Yifenfei is a romantic guy and he likes to count the stars in the sky. To make t ...

Swift - 高级运算符介绍

除了基本运算符之外,Swift还支持位运算和位移运算,包括:   1,按位取反运算:操作符是 ~ 2,按位与运算:操作符是 & 3,按位或运算:操作符是 | 4,按位异或运算:操作符是 ^ 5 ...

js获取时间相关函数

js获取时间函数 var myDate = new Date; var year = myDate.getFullYear();//获取当前年 var yue = myDate.getMonth()+ ...

nginx+php负载均衡集群环境中的session共享方案梳理

在网站使用nginx+php做负载均衡情况下,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 下面罗列几种nginx负载均衡 ...

JS用斜率判断鼠标进入DIV四个方向的方法 判断鼠标移入方向

本文要介绍的是一种鼠标从一个元素移入移出时,获取鼠标移动方向的思路.这个方法可以帮助你判断鼠标在移入移出时,是从上下左右的哪个方向发生的.这个思路,是我自己琢磨出来,利用了一点曾经高中学过的数学知识, ...

Excel技巧--图表添加平均线为指标

如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...

python统计有几个单词_统计文件中单词的个数---Shell及python版相关推荐

  1. python读取日期_从文件中读取日期和数据(Python)

    我想从文件中读取时间字符串和数据,但是当我使用loadtxt时,我不能同时读取字符串和数字,因为字符串不是浮点型的.所以我尝试使用genfromtxt并使用delimiter=[]+[]+[]作为我所 ...

  2. 【数据结构笔记42】哈希表应用:文件中单词词频统计

    本次笔记内容: 11.5 文件中单词词频统计 文章目录 题目 分析 程序框架 题目 如上图,对单词词频进行统计. 分析 如上图,涉及到对已有单词进行查找,因此要进行单词的管理,使用散列表. 程序框架 ...

  3. 统计文件字符个数 java_如何统计个文件中的字符个数

    一个朋友问到了统计文件字符数的问题.就找了两个. import java.io.*; public class Execute_char { final int MAX = 9999; int len ...

  4. java+txt+词语+次数_Java练习2--读取txt文件统计考勤次数并写入一个txt文件中

    Java练习2--读取txt文件统计考勤次数并写入一个txt文件中 Java练习2--读取txt文件统计考勤次数并写入一个txt文件中 面向对象的小练习: 文件attendance.txt中的数据为本 ...

  5. linux统计某个字符个数,Linux统计一个文件中特定字符个数的方法

    统计一个文件中某个字符串的个数,其实就是在在一块沙地里面找石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记:有的人看到石头以后,把它挖了(tr),最后统计自己挖了多少石 ...

  6. 简单的MapReduce项目,计算文件中单词出现的次数

    简单的MapReduce项目,计算文件中单词出现的次数 计算文件中单词出现的次数,试题如下图 1.创建读取单词的文件tast,内容如下: hadoop core map reduce hiv hba ...

  7. 在python平台上利用pymol来查找PDB文件中蛋白质的相互作用位点

    这篇代码写的可能有点问题,大家如果有需要,去看另一篇吧.如果有啥不足,请批评指正. 在python平台上利用pymol来查找PDB文件中蛋白质的相互作用位点 关于蛋白质结合位点,查阅了很多篇文献,大多 ...

  8. Python练手小程序—统计英文文件中单词出现的的个数

    在GitHub上发现一些很有意思的项目,由于本人作为Python的初学者,编程代码能力相对薄弱,为了加强Python的学习,特此利用前辈们的学习知识成果,自己去亲自实现. 一周没有更新了,主要还是自己 ...

  9. 统计java代码行数_统计项目代码行数

    今天测试告知需要项目的代码行数,项目怎么也有十万左右的代码行数,想想就想奔溃了, Eclipse一定有这方面的统计,应该也有统计工具,于是上网查了一番,果然找到了. 1.我要查询的文件类型为*.xml ...

最新文章

  1. 爱奇艺员工拿到北京户口后辞职,被判赔偿公司十万!
  2. 谈谈C语言中的杂项运算符
  3. unity Mirror使用笔记
  4. android studio打包aar心得
  5. 矩阵乘法c语言蓝桥杯,[蓝桥杯][基础练习VIP]矩阵乘法 (C语言代码)
  6. 超级终端secureCRT-下载及使用
  7. Web前端工程师常用的8个工具
  8. 十六进制转二进制原理
  9. 在线协同编辑excel系统
  10. 大数据-经典案例统计求和
  11. Wp8开发环境搭建总结
  12. 发布任务接单小程序开发制作
  13. python-opencv下读取影像释放内存
  14. 我参加第七届NVIDIA Sky Hackathon——训练CV模型
  15. Python学习:数学运算教程
  16. php怎么设置段落之间的距离,css如何设置段落间距?margin 属性设置段落间距(代码实例)...
  17. WebSocket接口测试方法
  18. 小白科研笔记:简析图神经网络收敛性的理论证明
  19. element tab选项卡标签样式
  20. 抖音全球购安心购服务规范|四川鹰迪

热门文章

  1. 工作中提高工作效率的几个思维模式
  2. mysql 1.4安装步骤_从零开始搭建系统1.4——MySql安装及配置
  3. 计算机机房abc标准,ABC级数据中机房建设要求.doc
  4. 空间换时间--编程小绝招解决电话区号识别算法问题
  5. 市值从100亿缩水到3亿仅用三年,转型的趣店无“底“可抄?
  6. docker/Dockerfile/docker compose
  7. mysql 从第几个字符串开始截取_Mysql字符串截取函数SUBSTRING的用法说明
  8. 前端搜索关键字突出展示
  9. 《微信小程序》 开源项目
  10. 超级记忆法(4)——第二小时