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

时间:2016-01-19 19:03:08

标签: awk uniq

cat 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

2 个答案:

答案 0 :(得分:1)

awk救援!

$ awk -F\. '{c[$1]++; a[$1]=a[$1]?a[$1]RS$0:$0}
         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

答案 1 :(得分:0)

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

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