Linux/unix重复名称

Linux/unix重复名称,linux,sorting,unix,awk,uniq,Linux,Sorting,Unix,Awk,Uniq,我需要做的是,检查重复的域名,并找出是否有一些。 到目前为止,我用grep、awk、sort、uniq尝试了很多命令,但都没能解决这个问题,我觉得它很简单,但无法实现。 另外,如果我使用uniq-c我会在这个文件中得到一个巨大的字符串列表,我会看到它有多少重复项,以及它是哪个数字字符串 从我正在使用的文件中添加20行 1,google.com 2,facebook.com 3,youtube.com 4,yahoo.com 5,baidu.com 6,amazon.com 7,wikipedia

我需要做的是,检查重复的域名,并找出是否有一些。 到目前为止,我用grep、awk、sort、uniq尝试了很多命令,但都没能解决这个问题,我觉得它很简单,但无法实现。 另外,如果我使用
uniq-c
我会在这个文件中得到一个巨大的字符串列表,我会看到它有多少重复项,以及它是哪个数字字符串

从我正在使用的文件中添加20行

1,google.com
2,facebook.com
3,youtube.com
4,yahoo.com
5,baidu.com
6,amazon.com
7,wikipedia.org
8,twitter.com
9,taobao.com
10,qq.com
11,google.co.in
12,live.com
13,sina.com.cn
14,weibo.com
15,linkedin.com
16,yahoo.co.jp
17,tmall.com
18,blogspot.com
19,ebay.com
20,hao123.com
我希望看到的输出

>        2 google
>        2 yahoo

谢谢你的帮助

您可以使用类似的方法来获得所需的输出:

$ awk -F'[.,]' '{++a[$2]}END{for(i in a)if(a[i]>1)print a[i],i}' file
2 google
2 yahoo
将输入字段分隔符设置为
,将为文件中的每一行运行第一个
{block}
。它使用第二个字段建立一个数组
a
:“google”、“facebook”等。
$2
是第二个字段的值,因此
++a[$2]
增加数组
a[“google”]
a[“facebook”]
等的值。这意味着数组中的值每看到一个相同的名称就会增加一个

处理完整个文件后,for(i in a)循环将遍历数组中的所有键(“google”、“facebook”等),并打印值大于1的键。

给定此文件:

$ cat /tmp/test.txt
1,google.com
2,facebook.com
3,youtube.com
4,yahoo.com
5,baidu.com
6,amazon.com
7,wikipedia.org
8,twitter.com
9,taobao.com
10,qq.com
11,google.co.in
12,live.com
13,sina.com.cn
14,weibo.com
15,linkedin.com
16,yahoo.co.jp
17,tmall.com
18,blogspot.com
19,ebay.com
20,hao123.com
在Perl 1系列中:

$ perl -lane '$count{$1}++ if /^\d+,(\w+)/; END {while (($k, $v) = each %count) { print "$v $k" if $v>1}}' /tmp/test.txt 
2 yahoo
2 google

我试过了,但是别忘了,有100000个字符串,在我做了uniq-c之后,我看到了一个巨大的列表,它没有帮助。在那个列表中,重复项看起来如何?那么独特元素是如何产生的呢?好吧,假设duplicate是1,google.com是2,google.co.in,我猜在那100000行中还有更多,假设unique是12,live.com我在谈论uniq-c的输出。你写得很清楚对任何人都没有帮助。这是不相关的。你能编辑你的问题来展示一个包含一些重复项和你想要的输出的最小示例吗?