Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用UNIX获取列表中唯一值的频率计数?_Bash_Unix - Fatal编程技术网

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

Bash 如何使用UNIX获取列表中唯一值的频率计数?,bash,unix,Bash,Unix,我有一个文件,列表中有几千个域名。我使用uniq命令轻松地生成了一个只包含唯一名称的列表。现在,我想浏览一下,看看uniques列表中的每个项目在原始的非唯一列表中出现了多少次。我认为这个循环应该很容易实现,但我遇到了麻烦: for name in 'cat uniques.list'; do grep -c $name original.list; done > output.file 出于某种原因,它会给出一个结果,显示uniques文件和原始文件的一些计数(老实说,不确定是什么)

我有一个文件,列表中有几千个域名。我使用uniq命令轻松地生成了一个只包含唯一名称的列表。现在,我想浏览一下,看看uniques列表中的每个项目在原始的非唯一列表中出现了多少次。我认为这个循环应该很容易实现,但我遇到了麻烦:

for name in 'cat uniques.list'; do grep -c $name original.list; done > output.file
出于某种原因,它会给出一个结果,显示uniques文件和原始文件的一些计数(老实说,不确定是什么)

我觉得我忽略了一些非常简单的事情。感谢您的帮助


谢谢

只需在您的文件上使用
uniq-c

-c、 --伯爵 按出现次数为行添加前缀

获取最终输出的命令:

排序原始.list | uniq-c


为什么不干脆对original.list | uniq-c进行排序呢?实际上这似乎不起作用。我得到了计数,但仍然有一些名称以不同的计数多次列出,好像它没有计算每个实例。也许这是一个大文件长度的产品?您确定这些文件中没有空格吗?(例如“abc”!=“abc”)