如何通过比较awk中的字段1和字段2来查找重复?

时间:2013-10-23 16:27:55

标签: awk

我想将字段1与字段2进行比较并找到重复

例如:文件包含以下数据

51:40-5E:40
51:41-5E:41
51:42-51:40
51:52-5E:52
51:A0-5E:A0
51:A9-5D:B8
51:AA-5E:53

在此51:40$1中找到了$2,因此我需要在运行脚本时打印51:40

2 个答案:

答案 0 :(得分:1)

这个awk单行可能适合你:

awk -F- '$1 in a{print $1}{b[$1]}$2 in b{print $2}{a[$2]}' file

答案 1 :(得分:1)

你想要

awk '
    BEGIN {FS = "-"}
    {
        field1[$1]++ 
        field2[$2]++
    } 
    END {
        for (item in field1) {
            if (item in field2) {
                print item
            }
        }
    }
' filename

作为一个单行:

awk -F- '{a[$1];b[$2]} END {for (i in a) if (i in b) print i}' filename