Como outros sugeriram, grep -Fwf file1 file2 deve funcionar.
Se você quiser usar loops, tente
for i in 'cat file1'; do grep " "${i}" " file2; done
Eu tenho dois arquivos - um com alguns IDs (arquivo de texto) e outro com IDs e descrições (arquivo de guia).
Arquivo1:
31120
211890
542312
Arquivo2:
chr10 31120 A T Descriptions
Chr11 131120 A T Descriptions
chr12 23765090 G C Descriptions
chr15 784930 A G Descriptions
Resultado esperado:
chr10 31120 A T Descriptions
Apresentar saída:
Random selected columns some matching the file1 IDs and some not.
Estou usando grep -f file1 file2 > output.txt
para corresponder aos meus IDs de file1
e extrair suas informações de file2
. No entanto, o problema é que, quando eu tenho um ID dizer-31120. Encontre-me IDs como 31120, 231120, 311200 etc.
Como estou executando um arquivo para encontrar padrões em outro, o que posso usar para torná-lo específico para minha pesquisa, de modo que apenas 31120 seja retornado. Embora seja fácil fazê-lo em uma pesquisa grep normal de um liner, não sei como fazer isso quando dois arquivos estão sendo comparados.
Eu tentei usar grep -F -f file1 file2
, mas isso não funcionou.
Agora eu usei o grep -Fwf file1 file2, que também não está funcionando.
Como outros sugeriram, grep -Fwf file1 file2 deve funcionar.
Se você quiser usar loops, tente
for i in 'cat file1'; do grep " "${i}" " file2; done
Tags grep