我有两个文件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
###
我想将file1.txt的第1,2和3列与file2.txt的第1,4和5列匹配。如果匹配,请将匹配的行与以下行打印到###
,但不要打印###
。我试着用awk'
awk -F'\t' 'NR==FNR{c[$1$2$3]++;next};c[$1$4$5] > 0' file1.txt file2.txt > out.txt.
答案 0 :(得分:0)
没有看到你的预期输出就是猜测,但听起来这就是你想要的:
awk '
NR==FNR { a[$1,$2,$3]; next }
($1,$4,$5) in a { found=1 }
/^###/ { found=0 }
found
' file1 file2