列表的组和总计

列表的组和总计

使用bash,是否可以从列表中获取条目数,例如列表

a
b
a
cccc
b
a

所需的输出类似于

a 3
b 2
cccc 1

答案1

通常的方法是使用sort | uniq -c.对于你的例子,这给出了

  3 a
  2 b
  1 cccc

如果您确实需要将计数放在行尾,则传递sed可以解决此问题。

答案2

您可以使用awk

awk '{
         arr[$0]+=1
     }
     END{
         for (item in arr){
             print(item, arr[item])
         }
     }' inputfile

arr是一个关联数组,它的键是整行($0),它的值是键出现的次数。最后,我们循环整个数组并打印所有键及其值。

相关内容