0
我有两个文件file1.txt和file2.txt。比较两个文件并在匹配后用一些行打印匹配行
FILE1.TXT
DS496218 40654 42783
DS496218 40654 42783
DS496218 40654 42783
FILE2.TXT
###
DS496108 ena gene 99942 102567 . -
DS496128 ena mRNA 99942 102567 . -
DS496118 ena three_prime_UTR 99942 100571
###
DS496218 ena gene 40654 42783 . -
DS496108 ena mRNA 99942 102567 . -
DS496108 ena three_prime_UTR 99942 100571
###
DS496128 ena gene 99942 102567 . -
DS496133 ena mRNA 99942 102567 . -
DS496139 ena three_prime_UTR 99942 100571
###
我想匹配用1,4-柱和FILE2.TXT第5列1,2和FILE1.TXT的3。如果匹配,则打印匹配行,直到###
,但不打印###
。我在
awk -F'\t' 'NR==FNR{c[$1$2$3]++;next};c[$1$4$5] > 0' file1.txt file2.txt > out.txt.
尝试使用“中”选项。即:$ 1 $ 4 $ 5在c {do stuff here} – grail
用'awk'尝试NR == FNR {c [$ 1 $ 2 $ 3] ++;下一步} $ 1 $ 4 $ 5在c'file1.txt RS =“###”file2.txt' –
[编辑]你的问题包括给定输入的预期输出。 @JoseRicardoBustosM。否,不要连接字段来创建密钥字符串,除非您有一个非常具体的目标,因为这会产生错误的匹配 - 请考虑'a bc' - >'abc'和'ab c' - >'abc'。同时将RS设置为多个字符会使脚本不必要地特定于gawk,并且会在匹配之前以及之后打印行。 –