我的文件包含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
答案 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