2010-11-10 68 views
1

以下脚本给出了第4个字段中唯一元素的数量。在awk中查找两行中的唯一项目

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

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

回答

2

你可以做到这一切在AWK

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

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

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