我有一个名称列表,每行一个名称另存为.txt文件。
我正在尝试使用bash来确定一次,两次或三次出现多少个不同的名称。
例如:
names.txt看起来像
Donald
Donald
Lisa
John
Lisa
Donald
在这种情况下,唯一行的数量为1,有1个重复行,并且1个名称出现3次。我正在尝试使用
uniq
将这些金额放在更大的列表中。我知道我可以将uniq -u
和uniq -d
用于唯一性和重复项,但是我不确定如何使用出现3次的名称进行操作。 最佳答案
$ echo 'Donald
Donald
Lisa
John
Lisa
Donald' | sort | uniq -c | awk '{print $1}' | sort | uniq -c
1 1
1 2
1 3
右列是重复计数,左列是具有该重复计数的唯一名称的数量。例如。 “Donald”的重复计数为3。
更大的例子:
echo 'Donald
Donald
Rob
Lisa
WhatAmIDoing
John
Obama
Obama
Lisa
Washington
Donald' | sort | uniq -c | awk '{print $1}' | sort | uniq -c
4 1
2 2
1 3
四个名称(“Rob”,“WhatAmIDoing”,“John”和“华盛顿”)的重复计数均为1。两个名称(“Lisa”和“Obama”)的重复计数均为2。一个名称( “Donald”)的重复计数为3。
关于linux - 如何计算唯一行,重复行以及在文本文件中出现三次的行的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37037420/