我有一个文件与另一个文件中的行部分匹配。为了做到这一点,我希望生成一个带有 read 的 while 循环,并将每行部分匹配的变量替换为 grep 命令,以搜索具有部分匹配的数据库文件,但由于某种原因,我没有得到输出(一个空的outputfile.txt)。
这是我当前的脚本
while read -r line; do
grep $line /path/to/databasefile >> /path/to/folder/outputfile.txt
done < "/partial_matches.txt"
数据库有多行,其中包含序列名称,然后是 DNA 序列:
>transcript_ab
AGTCAGTCATGTC
>transcript_ac
AGTCAGTCATGTC
>transctipt_ad
AGTCAGTCATGTC
并且部分匹配的搜索文件具有文本行:
ab
ac
我正在寻找以下返回:
>transcript_ab
>transcript_ac
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
如果您使用的是 GNU grep
,那么它的 -f
选项就是您要寻找的:
grep -f /partial_matches.txt /path/to/databasefile
(如果partial_matches.txt中没有任何模式而只有字符串,则使用grep -F
而不是grep
)
关于linux - 逐行读入文件并在另一个文件中搜索部分匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53640976/