命令
- 统计词频需要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
- 结果