匹配指定分隔符前的重复字符串
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
猫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