总结LINUX中的uniq计数

时间:2017-11-28 14:56:51

标签: linux

我的文件包含Linux shell中的以下详细信息

Sam  , apple
jhon , banana
Sam  , apple
jhon , banana
Sam  , mango
jhon , banana
jhon , apple
Sam  , apple
Sam  , papaya

使用我的Linux命令,我可以得到如下结果

cat /names/fav.log  | cut -d "," -f 1|sort |uniq -c | sort -rn

结果

Sam     5
jhon    4

但我需要第二列的uniq数。如下

Required result
Sam     3
jhon    2

2 个答案:

答案 0 :(得分:2)

我认为仅通过管道命令列表是不可行的,你需要像这样循环第一列:

umount ~/mnt

输出是:

for i in $(cat list.txt | cut -f 1 -d ',' | sort | uniq); do echo $i $(grep $i list.txt | cut -f 2 -d ',' | sort | uniq | wc -l); done;

答案 1 :(得分:0)

只需删除cut -d "," -f 1或将其放在命令的末尾,如下所示:

cat /names/fav.log  | sort |uniq -c | sort -rn

cat /names/fav.log |sort |uniq -c | sort -rn | cut -d "," -f 1