在linux/nix中使用grep输出和计数总出现次数

在linux/nix中使用grep输出和计数总出现次数,linux,unix,command,Linux,Unix,Command,我有一个数据文件users.dat,其条目如下: user1 user2 user4 user1 user2 user1 user4 ... user3 user2 我应该使用哪个命令grep?厕所?用于计算每个单词重复的次数,并将其输出到user_total.dat,如下所示: user1 80 user2 35 user3 18 user4 120 问题是我不能指定user1或user19287,因为有太多的用户使用随机但重复的数字 但该DAT文件中存在重复用户 谢谢你的帮助 使用uni

我有一个数据文件users.dat,其条目如下:

user1
user2
user4
user1
user2
user1
user4
...
user3
user2
我应该使用哪个命令grep?厕所?用于计算每个单词重复的次数,并将其输出到user_total.dat,如下所示:

user1 80
user2 35
user3 18
user4 120
问题是我不能指定user1或user19287,因为有太多的用户使用随机但重复的数字

但该DAT文件中存在重复用户

谢谢你的帮助

使用uniq命令计算一行的重复次数。它要求对输入进行排序,因此首先使用sort

如果您想按发生的顺序进行进一步的排序,请使用某种形式的-n参数第二次进行排序,请阅读手册页


编辑:呸。。。我没有意识到系统把那一段代码渲染得多么愚蠢

你在哪里计算重复的代码?显然,当我发布系统删除了管道符号上的所有内容时,我没有注意到这一点。叹气使用堆栈交换而不是我的UN*X skillz时出错。这是因为您忘记使用代码标记,所以字符被视为HTML标记。
sort users.dat | uniq -c > user_total.dat
sort <users.dat | uniq -c > user_total.dat