在awk中查找两行中的唯一项

时间:2010-11-10 15:33:48

标签: unix scripting shell awk

以下脚本为我提供了第4个字段中唯一元素的数量。

awk -F'\t' '$7 ~ /ECK/ {print $4}' filename.txt | sort | uniq | wc -l 

同样,我可以在第二场中找到独特的元素。但是,如何计算第4个字段中但不在第2个字段中的唯一项目数。换句话说,第4个字段中没有出现在第2个字段中的唯一元素。

2 个答案:

答案 0 :(得分:2)

你可以在awk中完成所有工作

awk '
    {
        field_2[$2] = 1
        field_4[$4] = 1
    }
    END {
        for (item in field_4) {
            if (!(item in field_2)) 
                print item;
        }
    }
'

答案 1 :(得分:0)

这使用Bash(或ksh或zsh)进程替换,但是如果你使用的是不支持它的shell,你可以创建排序的临时文件。

join -t $'\t' -1 4 -2 2 -v 1 -o 1.4 <(sort -k4 inputfile) <(sort -k2 inputfile) | sort -u | wc -l