我尝试使用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
任何想法可能是什么问题?这让我发疯了!
head Fmerg_U1_filtering.txt
Transcript_25
Transcript_455
Transcript_526
Transcript_631
Transcript_631
答案 0 :(得分:1)
Fmerg_U1_filtering.txt
中的文本很有可能带有尾随/前导空格。
假设存在尾随空格,带有--file
的grep命令也将尝试匹配这些空格,但是,带有$i
(不带引号)的shell脚本将忽略这些空格。
因此,请检查文件Fmerg_U1_filtering.txt
,删除前导/后缀空格。