模式文件返回所有行而不是目标的grep

模式文件返回所有行而不是目标的grep,grep,Grep,我尝试使用grep在第二个文件中使用模式列表对文件进行子采样。然而,每当我运行它时,grep只返回第一个文件中的所有内容 grep -A1 -w --file=Fmerg_U1_filtering.txt Fmerg_final.fasta 然而,当我使用这个更麻烦的方法时,它工作得非常好 #!/bin/bash while read i; do grep -A1 -w $i Fmerg_final.fasta done < Fmerg_U1_filtering.txt 很可

我尝试使用grep在第二个文件中使用模式列表对文件进行子采样。然而,每当我运行它时,grep只返回第一个文件中的所有内容

 grep -A1 -w --file=Fmerg_U1_filtering.txt Fmerg_final.fasta
然而,当我使用这个更麻烦的方法时,它工作得非常好

#!/bin/bash
while read i; do
    grep -A1 -w $i Fmerg_final.fasta
done < Fmerg_U1_filtering.txt

很可能,
Fmerg\u U1\u filtering.txt
中的文本有尾随/前导空格

假设有尾随空格,则带有
--file
的grep命令也将尝试匹配这些空格,但是带有
$i
(不带引号)的shell脚本将忽略这些空格


因此,请检查文件
Fmerg\u U1\u filtering.txt
,删除前导/尾随空格。

您的
txt
文件中有空行吗?就是这样。谢谢你,马克!或空行。谢谢,这个答案帮助很大
head Fmerg_U1_filtering.txt
Transcript_25
Transcript_455
Transcript_526
Transcript_631
Transcript_631