计算文本文件中的唯一元素

计算文本文件中的唯一元素

我有一个包含用户推文的文本文件,其中:

470192   anneJackson    Apple's new iPhone is a no go for me
470193   trex90         For something so expensive, I'll go for Android anyway 
470194   anneJackson    What an outrageous pricing!

其中第一列表示 ID,后跟用户名和用户的推文。我现在想做的是编写一个命令来计算每个唯一用户的推文数量,这给了我类似的内容:

anneJackson   2
trex          1

我尝试过类似的事情:

cut -f 2 Twitter_Data_1 | sort | uniq -c

但感觉不对,因为我只使用用户列,不包括推文。

答案1

这是一份好工作awk

awk '{ a[$2]++ }END{ for(i in a) printf "%-15s%s\n",i,a[i] }' Twitter_Data_1
  • a[$2]++- 增加每个唯一的出现次数用户名(由第二个字段值表示$2

输出:

trex90         1
anneJackson    2

答案2

假设您的文件具有固定宽度的列,并且列之间的空格是空白而不是制表符,

cut -c 10-24 Twitter_Data_1 | sort | uniq -c

这会给你

      2 anneJackson    
      1 trex90         

您不需要在命令中包含推文,因为每一行代表一条推文。

相关内容