unix文本文件找到双重条目

时间:2016-07-21 13:28:35

标签: shell

我有以下文件,其中包含以下条目:

cn: 5f78ee78-54a6-41b7-bff5-a34ff4f7fc4d  
7379800474  
cn: f6c16630-a194-4e64-8bb9-5edab380340a  
2193668474  
cn: 2ed03469-eaf2-4f0a-b5b2-4e0b3fab402c  
5051108453  
cn: d28fc57c-0ff8-4b08-9120-6614e35da185  
9518351168  
cn: 3762c0ec-2a6e-4bf9-afe5-bf144e1f658d  
4902143367  
cn: 600bdcfe-bf0a-4735-95bc-fbe1f2d521d5  
3239279952  
cn: 8d7d1204-4d5b-48ab-8f2c-3ab5d7da2d3d  
3339625694  
3546846448  
3339625694  
3546846448  
cn: e52f7b5a-9061-4168-9622-f4f0c3cd863c  
4853840278  
cn: e617bf31-58a9-412f-9cac-77620f203c1b  
8075983683  
cn: c42d6609-544b-412e-abd5-c76eb1fa7ec1  
3938895718  
cn: 33359ce9-e57e-494a-a08b-c07a647733f4  
1623732669  
8713087228  
1623732669  

我需要知道哪个cn有双重条目

cn可能有多个条目。

所以cn 8d7d1204-4d5b-48ab-8f2c-3ab5d7da2d3d在上面的示例中有两个双重条目:

3339625694  
3546846448  
3339625694  
3546846448  

1 个答案:

答案 0 :(得分:0)

sort filename | uniq -d会列出多次出现的任何一行。

修改

要求已更改,您很可能需要perl脚本。

逐行读取输入,查找以cn开头的每一行。之后,每当您看到一行不以cn开头时,您将该特定项目的计数器增加1.下次当您看到以cn开头的行时,检查你的计数器,看看它们是否大于1.然后清除你的计数器并重新开始。