相关疑难解决方法(0)

在文件中找到 n 个最常用的词

我想在文本文件中找到 10 个最常见的单词。首先,解决方案应该针对击键进行优化(换句话说 - 我的时间)。其次,对于业绩。以下是我目前获得前 10 名的条件:

cat test.txt | tr -c '[:alnum:]' '[\n*]' | uniq -c | sort -nr | head  -10
  6 k
  2 g
  2 e
  2 a
  1 r
  1 k22
  1 k
  1 f
  1 eeeeeeeeeeeeeeeeeeeee
  1 d
Run Code Online (Sandbox Code Playgroud)

我可以制作一个 java、python 等程序,我将 (word, numberOfOccurences) 存储在字典中并对值进行排序,或者我可以使用 MapReduce,但我针对击键进行了优化。

是否存在误报?有没有更好的办法?

command-line shell-script

38
推荐指数
4
解决办法
7万
查看次数

用单字母词grep奇怪的行为

我正在从文本中删除停用词,大致使用此 代码

我有以下

$ cat file
file
types
extensions

$ cat stopwords
i
file
types
Run Code Online (Sandbox Code Playgroud)

grep -vwFf stopwords file

我期待结果: extensions

但我得到了(我认为不正确)

file
extensions
Run Code Online (Sandbox Code Playgroud)

就好像file在停用词文件中跳过了该词。现在是很酷的一点:如果我修改停用词文件,通过将i第一行的单个单词/字母更改为除f, i, l,之外的任何其他 ascii 字母e,那么相同的 grep 命令会给我一个不同且正确的结果extensions

这里发生了什么,我该如何解决?

我在 Mac OSX GNU bash 版本 4.4.12(1) 上使用 grep (BSD grep) 2.5.1-FreeBSD

osx freebsd grep

10
推荐指数
1
解决办法
1340
查看次数

标签 统计

command-line ×1

freebsd ×1

grep ×1

osx ×1

shell-script ×1