在 UNIX 中使用 grep 查找行时出现问题

在 UNIX 中使用 grep 查找行时出现问题

我正在尝试使用包含大约 5000 个模式(以行间隔)的 .txt 文件来搜索另一个包含 18000 行的文件以查找任何匹配项。到目前为止,我已经尝试了在互联网上可以找到的各种形式的 grep 和 awk,但它仍然不起作用,所以我完全被难住了。

这是每个文件中的一些文本。

模式.txt

rs2622590
rs925489
rs2798334
rs6801957
rs6801957
rs13137008
rs3807989
rs10850409
rs2798269
rs549182

没有多余的空格或任何东西。

文件.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  .

file.txt是直接从med目录下载的。

我对 UNIX 很陌生,所以任何帮助都会很棒!

这是从 stackoverflow 复制的。我已经尝试了推荐的每一项,但输出仍然是空白。我的文本文件中是否可能缺少语法问题或某些内容?

PS 我尝试过的事情:

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

答案1

用 GNU grep 试试这个:

grep -f Pattern.txt File.txt

相关内容