博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash 词频统计
阅读量:7094 次
发布时间:2019-06-28

本文共 813 字,大约阅读时间需要 2 分钟。

  hot3.png

写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。

为了简单起见,你可以假设:

  • words.txt只包括小写字母和 ' ' 。
  • 每个单词只由小写字母组成。
  • 单词间由一个或多个空格字符分隔。

示例:

假设 words.txt 内容如下:

the day is sunny the thethe sunny is is

你的脚本应当输出(以词频降序排列):

the 4is 3sunny 2day 1

sort:

sort -n 将字符串转数字
sort -r 指定顺序为从大到小
sort -k 2 指定第二个字段作为排序判断标准

 sort -rnk 1  (r表示逆向排序, n表示按数值排序, k表示按第k列进行排序)

sort | uniq -c 通常一起用来统计重复出现的次数。

uniq可检查文本文件中重复出现的行列, -c或--count 在每列旁边显示该行重复出现的次数。

cat:

cat m1 (在屏幕上显示文件ml的内容)

cat m1 m2 (同时显示文件ml和m2的内容)

cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

tr -s:  -s, --squeeze-repeats  

replace each input sequence of a repeated character                            

that is listed in SET1 with a single occurrence                            

of that character

tr -s ' ' '\n'可实现把空格替换为换行符的分割操作

答案:

cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -rn | awk '{print $2, $1}'

 

转载于:https://my.oschina.net/lfxu/blog/1818874

你可能感兴趣的文章
a common method to rotate the image
查看>>
测试计划
查看>>
深拷贝与浅拷贝
查看>>
textarea禁止拖动 滚动条隐藏
查看>>
Elasticsearch 排序插件的开发
查看>>
EchoServer和EchoClient模型的改进1之多线程
查看>>
hdu 5839
查看>>
Webpack自动化工程
查看>>
Java下利用Jackson进行JSON解析和序列化
查看>>
Js用正则表达式验证字符串
查看>>
大疆农业专家在线空开课直播课件知识
查看>>
怎样快速搜索自己所需的资料?(90%的人不会使用此方法)[转]
查看>>
POJ_2411_Mondriaan's Dream_状态压缩dp
查看>>
Spring自定义标签解析与实现
查看>>
python模块以及导入出现ImportError: No module named 'xxx'问题
查看>>
RedHat Linux 7安装CentOS 7 yum源
查看>>
reduce方法简单实现数组中对象去重
查看>>
Angular -- ng-class
查看>>
694. Number of Distinct Islands - Medium
查看>>
通过powershell查询OU中被禁用的AD账号,并删除他们的所属组
查看>>