Tente isso com o GNU grep:
grep -f Pattern.txt File.txt
Estou tentando usar um arquivo .txt com cerca de 5.000 padrões (espaçados com uma linha) para pesquisar em outro arquivo de 18.000 linhas por qualquer correspondência. Até agora eu tentei todas as formas de grep e awk que eu posso encontrar na internet e ainda não está funcionando, então estou completamente perplexo.
Aqui está um texto de cada arquivo.
Pattern.txt
rs2622590
rs925489
rs2798334
rs6801957
rs6801957
rs13137008
rs3807989
rs10850409
rs2798269
rs549182
Não há espaços extras nem nada.
Arquivo.txt
snpid hg18chr bp a1 a2 zscore pval CEUmaf
rs3131972 1 742584 A G 0.289 0.7726 .
rs3131969 1 744045 A G 0.393 0.6946 .
rs3131967 1 744197 T C 0.443 0.658 .
rs1048488 1 750775 T C -0.289 0.7726 .
rs12562034 1 758311 A G -1.552 0.1207 0.09167
rs4040617 1 769185 A G -0.414 0.6786 0.875
rs4970383 1 828418 A C 0.214 0.8303 .
rs4475691 1 836671 T C -0.604 0.5461 .
rs1806509 1 843817 A C -0.262 0.7933 .
O arquivo.txt foi baixado diretamente de um diretório med.
Sou muito novo no UNIX, então qualquer ajuda seria incrível!
Isso é copiado do stackoverflow. Eu tentei todas as coisas recomendadas, mas a saída ainda está em branco. Será que estou sentindo falta de um problema de sintaxe ou algo em meus arquivos de texto?
P.S. Coisas que eu tentei:
grep -Fw -f Pattern.txt File.txt
fgrep -f Pattern.txt File.txt
FILENAME=$1
awk '{kount++;print $0}' $FILENAME | fgrep -f - Pattern.txt
awk 'NR==FNR{pats[$0]; next} $2 in pats' Pattern.txt File.txt
Tente isso com o GNU grep:
grep -f Pattern.txt File.txt