2010-11-10 26 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