Linux shell 编程之 sort uniq 命令统计单词词频

命令

  • 统计词频需要uniq和sort配合使用
  • uniq
    • 实现去重操作,但仅仅和临近行的元素比较,那么如果元素是打散的不在连续行呢?这就需要sort操作
    • uniq -c -c表示将对应频次显示出来
  • sort
    • 可实现排序,这里就能让元素按照顺序排列,让相同元素临近
    • sort -nr -n表示数值排序,-r表示逆序
  • 然后在此基础上,进行uniq操作,即可得到每个元素对应频次
  • 一般为了美观,可以再加一个sort操作,让频次按照顺序排列

实践

tmp.txt 文本如下,将统计每个字段的频次

0-297:294
0-399:222
0-297:294
0-140:138
0-367:267
0-399:222
0-65:179
0-81:82
0-100:179
0-586:277
0-367:267
0-423:582
0-367:267
0-81:82
0-410:72
0-100:179
0-240:277
0-583:582
0-586:277
0-81:82
0-423:582
0-586:277
0-367:267
0-410:72
0-100:179
0-367:267
0-410:72
0-100:179
0-240:277
0-586:277
0-81:82
0-410:72
0-100:179
0-240:277
0-81:82
0-100:179
0-586:277
0-140:138
0-81:82
0-100:179
0-586:277
0-81:82
0-586:277
0-410:72
0-140:138
  • 代码
cat tmp.txt | sort  | uniq -c | sort -nr
  • 结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Xurui_Luo/article/details/106797648