簡體   English   中英

使用AWK根據一列獲取2個制表符分隔文件的不常見行

[英]getting uncommon rows of 2 tab separated files based on one column using AWK

我有2個制表符分隔的文件,例如以下2個示例:

file1

chr10   103912167   103917248   NOLC1   ENST00000603742.1
chr16   18573197    18558622    NOMO2   ENST00000543392.1
chr1    120611947   120572610   NOTCH2  ENST00000256646.2

file2

chr16   18573197    18558622    NOMO2   ENST00000543392.1
chr1    120611947   120572610   NOTCH2  ENST00000256646.2
chr1    145209308   145248834   NOTCH2NL    ENST00000344859.3

基於4th列,我想隔離第二個文件中不存在的第一個文件中的行。 這是預期的輸出:

expected output

chr10   103912167   103917248   NOLC1   ENST00000603742.1

我在AWK使用以下命令進行此操作:

awk 'NR==FNR{a[$4]!=$4;next}a[$4]' file1 file2 > results.txt

但它沒有返回我想要的。 你知道如何修正命令嗎?

awk 'NR==FNR{a[$4]=1;next}!a[$4]' file2 file1
#=> chr10   103912167   103917248   NOLC1   ENST00000603742.1

由於要基於文件2從文件1輸出內容,因此應首先閱讀文件2。

請注意,如果file2可以為空,則應更改為其他文件檢查方法,例如GNU awk的ARGIND==1FILENAME=="file2"等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM