如何在UNIX中获取列表中唯一值的频率计数?

4

我有一个文件,里面有几千个域名的列表。我使用uniq命令轻松生成了仅包含唯一名称的列表。现在,我想查找原始非唯一列表中每个唯一列表项出现的次数。我认为使用此循环应该很容易,但我遇到了麻烦:

for name in 'cat uniques.list'; do grep -c $name original.list; done > output.file

由于某些原因,它输出了一个显示某些内容(实际上不确定是什么)的计数结果,涉及到独立文件和原始文件。

我感觉自己可能是漏看了一些非常简单的东西。任何帮助都将不胜感激。

谢谢!


2
为什么不直接使用 sort original.list | uniq -c 呢? - tripleee
1个回答

7

只需在文件上使用uniq -c命令:

-c, --count 前缀行数与出现次数

获取最终输出的命令:

sort original.list | uniq -c


1
实际上,这似乎不起作用。我得到了计数,但仍然有一些名字列出了多个不同的计数,好像它没有计算每个实例。也许这是大文件长度的产物? - user3746901
1
你确定这些里面没有空格吗?(例如,“abc ”!=“abc”) - quantdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接