Linux:统计文件词频
来源:互联网 发布:网络安全法的特征 编辑:程序博客网 时间:2024/06/05 08:03
#!/bin/bash #Name: word_freq.sh #Description: Find out frequency of words in a file if [ $# -ne 1 ]; then echo "Usage: $0 filename"; exit -1 fi filename=$1 egrep -o "\b[[:alpha:]]+\b" $filename | \ awk '{ count[$0]++ } END{ printf("%-14s%s\n","Word","Count") ; \ for(ind in count) { printf("%-14s%d\n",ind,count[ind]); } }'
工作原理介绍:
1.egrep -o "\b[[:alpha:]]+\b" $filename 用来只输出单词,用 -o 选项打印出由换行符分割的匹配字符序列,这样我们就可以在每行中列出一个单词
2.\b 是单词边界标记符。[:alpha:] 是表示字母的字符类
3.awk命令用来避免对每一个单词进行迭代
1.egrep默认支持正则表达式,grep默认不支持。
2. awk'{pattern + action}' {filenames}
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。
0 0
- Linux:统计文件词频
- 统计特定文件中的词频
- linux命令实现词频统计
- C++ Map 统计文件中的词频
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 词频统计
- 统计词频
- 词频统计
- 词频统计
- Java连接各种数据库要用到的驱动程序名和URL
- POJ 3903-Stock Exchange/POJ 2533-Longest Ordered Subsequence(LIS-最长递增子序列长度)
- Ubuntu下开启MongoDB用户权限
- 操作系统统计信息v$osstat
- SQL语句创建表并添加数据
- Linux:统计文件词频
- nachos-java Task1.2 Condition Variables
- POJ 3047 Bovine Birthday 再想想
- 并查集的具体例题
- 等待级别和等待事件相关动态性能视图
- EffectiveJava(14)在公有类中使用访问方法而非公有域
- hdu 3605-Escape(网络流SAP模板+缩点)
- ubuntu14.04安装hadoop2.7.1
- Myeclipse如何新建maven工程