[英]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==1
或FILENAME=="file2"
等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.