匹配指定分隔符前的重复字符串

match duplicate string before a specified delimiter

猫test.txt

serverabc.test.net
serverabc.qa.net
serverabc01.test.net
serverstag.staging.net
serverstag.test.net

这里我需要匹配分隔符“.”之前的重复字符串。 所以预期的输出将如下所示。因为发现字符串 "serverabc" 和 "serverstag" 是重复的。请帮忙

serverabc.test.net
serverabc.qa.net
serverstag.staging.net
serverstag.test.net

如果不打算使用它,我可能会做这样的事情:

cut -f1 -d\. foo.txt | sort |uniq -c | grep -v "      1 " | cut -c 9-|sed 's/\(.*\)/^\./' > dup.host
grep -f dup.host foo.txt 
serverabc.test.net
serverabc.qa.net
serverstag.staging.net
serverstag.test.net

awk 救援!

$ awk -F\. '{c[]++; a[]=a[]?a[]RS[=10=]:[=10=]}
         END{for(k in c) if(c[k]>1) print a[k]}' file

serverabc.test.net
serverabc.qa.net
serverstag.staging.net
serverstag.test.net