bash - 文档中唯一单词的数量

标签 bash text grep

我有一个非常大的 txt 文件 (500GiB),我想获取其唯一单词的数量。我试过 this , 但它似乎很慢,因为它确实排序:

grep -o -E '\w+' temp | sort -u -f | wc -l

有更好的方法吗?

最佳答案

awk 助您一臂之力!

$ awk -v RS=" " '{a[$0]++} END{for(k in a) sum++; print sum}' file

更新:

使用 tr 进行预处理并让 awk 经济地进行计数可能更好。您可能想用空格或换行分隔单词。

例如:

$ tr ':;,?!\"' ' ' < file | tr -s ' ' '\n' | awk '!a[$0]++{c++} END{print c}'

关于bash - 文档中唯一单词的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34377704/

相关文章:

bash - curl 302 重定向不工作(命令行)

linux - shell脚本中特定行结尾的命令未找到错误

C++ 输出格式错误

python - 如何将文本文件作为字典导入python

r - 如何使用R将频率转换为文本?

linux - 如何理解带有 “--” 符号的这个奇怪的 grep 命令

linux - Ant 中的 Exec 命令只执行第一个命令

bash - CSV 复制/复制第一行到表格

regex - 如何按部分grep?

linux - Grep 数组中的输出行