从文件中 Grep 模式

从文件中 Grep 模式

我有两个文件。

文件1

Als  
Mmp  
Ggt1  

文件2(以制表符分隔)

cy3 cy5 ID GeneName Zscore  
18 18 NM23XX Als 2.34886  
456 487 NM375FG Rac 0.898549  

我想要grepfile2 中的 file1 列表。我希望返回的内容类似于:

18 18 NM23XX Als 2.34886  

我用了

grep -f file1 file2

但返回的是整个文件,匹配项以红色突出显示。我只想要匹配的行。我也试过了

grep -x -f file1 file2

还没有回复。我该怎么办?

答案1

for gene in $(cat file1); do cat file2 | grep $gene; done
18      18      NM23XX  Als     2.34886

答案2

你似乎做了正确的事情:

$ cat f1
Als
Mmp
Ggt1

$ cat f2
cy3 cy5 ID GeneName Zscore  
18 18 NM23XX Als 2.34886  
456 487 NM375FG Rac 0.898549 

$ grep  -f f1  f2
18 18 NM23XX Als 2.34886  

$ grep --version
grep (GNU grep) 3.1
...

也许您的 f1 文件的“Als”行上有尾随空格?

相关内容