统计单词数目的脚本
来源:互联网 发布:那个软件可以看韩剧 编辑:程序博客网 时间:2024/04/25 03:11
一: 大体思路
比如要统计readme.txt的单词出现的次数
首先将文本中的标点符号换成空格,然后将大写字母换成小写字母(因为The == the),然后再将多个空格压缩为一个空格
,这时得到的就是一些单词了,单词之间都是用一个空格分开的。然后,用换行替换空格,然后把单词排序,这时得到的
文本可能有重复的单词,最后丢弃重复的单词,并排序数字即可。
二: 查看文本 readme.txt
[cyq@localhost Desktop]$ cat readme.txt
Blog: http://blog.csdn.net/longxibendi
NOTE: Accents have been stripped from words, e.g., 'etude'
does not mark the accent on the initial 'e'.
longxibendi@126.com
三: 需要将文本中的标点符号替换成空格 。我们用
tr 命令 tr 'set1' 'set2' < readme.txt 用 set2 替换 set1 如下:
tr '!?":;/[/]//{}()m,./t/n' ' ' < readme.txt
光上面的那一行命令不够,还需要去掉 ' (单引号),所以我们还需要 :
tr "'" " "
四: 将上面的结果的大写字母换成小写字母 ,因为 The 和 the 是一个单词。
tr 命令:
tr 'A-Z' 'a-z'
五: 将上面的结果多个空格,压缩为一个空格 :
tr -s ' '
六: 将空格替换成换行:
tr ' ' '/n'
七: 对单词进行排序:
sort
八: 去掉重复的行(单词)
uniq -c
九: 对这时的结果中的数字按照从大到小排序:
sort -rn
-n 按算术值对数字字段排序
-r 按从大到小排序
十: 注意,如果你的文本中有其他的特殊符号,比如` ~,那么需要在第一步中加入`~ ,让空格替换掉他们
最终命令及结果如下:
[cyq@localhost Desktop]$ tr '!?"@:;/[/]//{}(),./t/n' ' ' < readme.txt | tr "'" " "| tr 'A-Z' 'a-z' | tr -s ' ' | tr ' ' '/n' |sort | uniq -c | sort -rn
2 the
2 longxibendi
2 e
2 blog
1 words
1 stripped
1 on
1 note
1 not
1 net
1 initial
1 http
1 have
1 g
1 fro
1 etude
1 does
1 csdn
1 co
1 been
1 ark
1 accents
1 accent
1 126
[cyq@localhost Desktop]$
也就是这个命令:
tr '!`?"@:;/[/]//{}(),./t/n' ' ' < readme.txt | tr "'" " "| tr 'A-Z' 'a-z' | tr -s ' ' | tr ' ' '/n' |sort | uniq -c | sort -rn
提示:如果想得到最大,最小值,用tail head 等命令再重定向过滤一下。比如
[cyq@localhost Desktop]$ tr '!?"@:;/[/]//{}()m,./t/n' ' ' < readme.txt | tr "'" " "| tr 'A-Z' 'a-z' | tr -s ' ' | tr ' ' '/n' |sort | uniq -c | sort -rn |head -1 | awk '{print $1}'
2
[cyq@localhost Desktop]$
这个是得到最大值
参考: 《精通shell编程》 (第二版)
声明:本文档可以随意更改,但必须署名原作者
作者:凤凰舞者 qq:578989855
- 统计单词数目的脚本
- 单词数目统计
- 统计字符串中的单词数目
- 统计字符串中的单词数目
- 多线程统计多个文件的单词数目
- 使用Java实现在单机上统计单词的数目
- 做一个统计单词数目的Atom插件
- 统计单词数目及单词首字母大写
- HDU 2072 单词数 -- C++ string set 统计不同的单词数目
- 题解:统计字符串中单词数目
- python 统计文件中单词数目
- Java 文件统计:编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目
- 统计1的数目
- 统计汉字的数目
- 08年华科机试第二题(统计文件中单词的数目)
- 第16周报告--任务5---统计其中出现的单词数目
- shell 脚本---统计文件中单词的频率
- shell脚本统计文件中单词的个数
- 应用 memcached 提升站点性能
- 65个介绍自己的技巧
- vbs版进程管理
- 我的今天
- HOOK SSDT
- 统计单词数目的脚本
- 简单工厂 工厂方法 和抽象工厂区别
- vbs 杀进程
- 右左法则
- 条件变量&信号量
- 面向GPU 的多LOD 因子的大规模场景可视化策略
- VC与数据库SQL的链接
- windows下svn server的安装和配置
- skyeye&arm-elf-gcc