É exatamente para isso que o comando join
é feito: ele une dois arquivos com base em um campo comum:
$ awk '{print $1}' File1 | join - File2
M01605:153:000000000-B55NK:1:1101:10003:14536 2:N:0:1 GTTTGCGCCGATGTA
M01605:153:000000000-B55NK:1:1101:10007:14573 2:N:0:1 GGGGATAAGCGTTGC
M01605:153:000000000-B55NK:1:1101:10007:14573 2:N:0:1 GGGGATAAGCGTTGC
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10010:14111 2:N:0:1 CTGCGTACTGATAGC
M01605:153:000000000-B55NK:1:1101:10010:19939 2:N:0:1 TCCGTGGTGCCGGCA
M01605:153:000000000-B55NK:1:1101:10011:22802 1:N:0:1 TGAGTTCGGATAAAG
M01605:153:000000000-B55NK:1:1101:10011:22802 1:N:0:1 TGAGTTCGGATAAAG
Seus arquivos podem ser classificados numericamente, mas não alfabeticamente, como esperado por join
. Se join
estiver reclamando, modifique levemente o comando acima para classificar a entrada com GNU sort
:
$ awk '{print $1}' File1 | sort | join - <(sort -k1,1 --stable File2)
Como seu segundo arquivo parece ter linhas duplicadas (veja os comentários), você pode querer alterar o segundo comando sort
para sort -k1,1 --stable --unique File2
(ainda que você esteja usando o GNU sort
, use uniq
). / p>