Ruby中实现统计文件行数、单词数和字符数
在Ruby中我们定义一个wc方法,用来统计文件中出现的文本行数、单词数和字符数,ruby代码程序如下:
def wc(filename)
nline = nword = nchar = 0
File.open(filename) do |io|
io.each_line do |line|
words = line.split(/\s+/).reject{|w| w.empty? }
#本例中使用了split方法分割单词,当行首有空白字符时,split方法的执行结果中会产生空白字符串,因此我们
#会删除该空白字符串。
nline += 1
nword += words.length
nchar += line.length
end
end
puts "文件的行数为:#{nline}\n文件的单词数为:#{nword}\n文件的字符数为:#{nchar}"
end
wc("sayGoodnight.rb")
#sayGoodnight.rb在这里只是filename文件举例,后面接的文件是可以变更的。
相关推荐
-
Ruby元编程小结
今天被问到此类问题,以前总是觉得这个是比较宽泛的一个概念,自己即使是用过这些特性,但却一直不知道这叫"元编程" 直到今天被人问起的时候,方才顿悟一些,随后便在网上和自己的平实用的一些元编程做个小总结. 原来所谓的Ruby中的元编程,是可以在运行时动态的操作语言结构(如类.模块.实例变量等)的技术.你甚至于可以在不用重启的情况下,在运行时直接键入一段新的Ruby代码,并执行他. Ruby的元编程,也具有"利用代码来编写代码"的作用.例如,常见的attr_accesso
-
在Ruby中创建和使用哈希的教程
哈希(Hash)是类似 "employee" => "salary" 这样的键值对的集合.哈希的索引是通过任何对象类型的任意键来完成的,而不是一个整数索引,其他与数组相似. 通过键或值遍历哈希的顺序看起来是随意的,且通常不是按照插入顺序.如果您尝试通过一个不存在的键访问哈希,则方法会返回 nil. 创建哈希 与数组一样,有各种不同的方式来创建哈希.您可以通过 new 类方法创建一个空的哈希: months = Hash.new 您也可以使用 new 创建带有默
-
Ruby Gems更换淘宝源方法
最近由于要做课设,所以昨天装了个 Windows,感觉闲的没事干,就想装个 Ruby 玩玩. 官方的 Rubygems 源由于有些资源放在 Amazon S3 上面,所以有时会抽风,在 Linux 下我用 proxychains gem install xxx 实现了指定程序实行 Shadowsocks 代理,但是 Windows 下不方便全局代理,所以就考虑换国内的淘宝源了. 之前换过一两次,但是由于只是两行命令而又不经常使用,所以就忘了,这次把它记录下来. 复制代码 代码如下: # 删除默认
-
Ruby中实现统计文件行数、单词数和字符数
在Ruby中我们定义一个wc方法,用来统计文件中出现的文本行数.单词数和字符数,ruby代码程序如下: 复制代码 代码如下: def wc(filename) nline = nword = nchar = 0 File.open(filename) do |io| io.each_line do |line| words = line.split(/\s+/).reject{|w| w.empty? } #本例中使用了split方法分割单词,当行首有空白
-
Python3读取UTF-8文件及统计文件行数的方法
本文实例讲述了Python3读取UTF-8文件及统计文件行数的方法.分享给大家供大家参考.具体实现方法如下: ''''' Created on Dec 21, 2012 Python 读取UTF-8文件 统计文件的行数目 @author: liury_lab ''' # -*- coding: utf-8 -*- import codecs # 对较小的文件,最简单的方法是将文件读入一个行列表中, # 然后计算列表的长度即可 count = len(codecs.open('d:/FreakOu
-
动态统计当前输入内容的字节、字符数的实例详解
动态统计当前输入内容的字节.字符数的实例详解 看到网上有好多利用charAt方法,原理也很简单,用正则判断是不是中文,如果是的话,字节数就加2,不是的话,字节数就加1. 后来发现另一种方式,由于一个汉字对应是两个字节,可利用正则,将匹配到的汉字用两个字符代替,例如:"xx",最后获得转化后的字符串的长度即是字节数. 而字符数就是对应有多少个汉字.字母.符号. //短信内容字数 $scope.bytesCount= 0; $scope.smsLength = 0; $scope.smsC
-
Shell脚本统计文件行数的8种方法
获取单个文件行数 文件:test1.sh 行数:20 方法一 复制代码 代码如下: awk '{print NR}' test1.sh|tail -n1 如图所示: 方法二 复制代码 代码如下: awk 'END{print NR}' test1.sh 如图所示: 方法三 复制代码 代码如下: grep -n "" test1.sh|awk -F: '{print '}|tail -n1 如图所示: 方法四 复制代码 代码如下: sed -n '$=' test1.sh 如图所示: 方
-
使用python统计文件行数示例分享
复制代码 代码如下: import time def block(file,size=65536): while True: nb = file.read(size) if not nb: break yield nb def getLineCount(filename): with open(filename,"r",encoding="utf-8") as f: return
-
Shell脚本对文件中的行、单词、字符进行迭代输出示例
在进行文本文件进行处理时,对文件件中的行.单词.字符进行迭代和遍历是非常常用的操作.而将一个简单的循环用于迭代,再加上来自stdin或文件的重定向,这就是对文件中的行.单词.和字符进行迭代的基本方法. 废话不多说,马上来看看怎么样实现吧. 1.迭代文中的每一行 使用while循环从标准输入中读取,因为要在标准输入中读取,就要对文件进行重定向,使它重定向到stdin中,代码如下: 复制代码 代码如下: while read line; do echo $line; done < file.t
-
linux下wc统计文件的个数、行数、字数、字节数等信息方法
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件- 2.命令功能: 统计指定文件中的字节数.字数.行数,并将统计结果显示输出.该命令统计指定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所指定文件的总统计数. 3.命令参数: -c 统计字节数. -l 统计行数. -m 统计字符数.这个标志不能与 -c 标志一起使用. -w 统计字数.一个字被定义为由空白.跳格
-
php超快高效率统计大文件行数
用php获取文件行数,网上给出的答案通常是使用file这样一次性读取,这样不适用在大文件.通常大文件大家用while来循环的逐行统计,这样的效率太慢 最快的方法是多行统计,每次读取N个字节,然后再统计行数,这样比逐行效率高多了. 测试情况,文件大小 3.14 GB 第1次:line: 13214810 , time:56.2779 s; 第2次:line: 13214810 , time:49.6678 s; /* * 高效率计算文件行数 * @author axiang */ function
-
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
使用Node.JS的大多数用记事本开发,有时侯会需要统计工程代码量,然后记事本大部分没有这个功能.其实用node.js几行代码就可以实现. var path = require('path') var fs = require('fs') //需要统计的文件类型,可自己删减,均小写 var codesFiles = [ '.css', '.js', '.html', '.tmpl', '.part', '.json', '.md', '.txt', '.yml', '.java', '.cs',
-
shell 命令统计代码行数的简单代码
分享一个统计代码行的shell命令: find . "(" -name ".java" -or -name ".html" -or -name ".js" -or -name ".css" ")" -print | xargs wc -l 根据不同的项目类型,不同的目录,自行修改. 如果内容多,可以: find . "(" -name ".java"
随机推荐
- linux grep正则表达式与grep用法详解
- CSS的expression使用简介
- JS判断字符串长度的5个方法(区分中文和英文)
- JS网页图片查看器(兼容IE、FF)可控制图片放大缩小移动
- 本地连接禁用/启用批处理脚本
- 利用php_imagick实现复古效果的方法
- MySQL中EXPLAIN命令详解
- javascript下用for( in )语句 获得所有style 内容的脚本代码
- 检测网段IP使用情况的shell脚本
- SSH在登录服务器后如何显示基础信息
- JavaScript-html标题滚动效果的简单实现
- win2003 服务器磁盘权限安全设置批处理
- 五板斧封杀Windows默认共享
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- Android Studio卡很久(loading)的问题解决办法
- java 中HashCode重复的可能性
- QT开发应用程序的欢迎界面实例
- visio二次开发--判断文档是否已发生变化(变化就加星号*)
- 常见路由器关闭端口
- 微信小程序实战篇之购物车的实现代码示例