Linux学习与应用技巧实用技巧

如何从一个文件中匹配查找另一个文件中的内容

2021-05-26  本文已影响0人  宗肃書

比如我有一包含许多基因的ID文件,和所有ID对应的序列文件,文件内容如下

cat geneid.txt
gene1
gene11
gene34
gene57
gene78
gene789

less -S gene.fa
>gene1 length=2
AT
>gene2 length=6
ATCGGT
>gene3 length=8
ATATATCG
>gene4 length=15
ATATATATATATATC

如果我想找geneid.txt里面所有基因对应的序列该怎么做?

用shell简单命令就可轻松解决
cat geneid.txt | tr "\n" "|"
gene1|gene11|gene34|gene57|gene78|gene789|
egrep -w -A 1 "gene1|gene11|gene34|gene57|gene78|gene789" gene.fa > geneid.fa
#-A 1 指匹配到到匹配上的字符串的下一行
cat geneid.txt | while read id;
do
         arr=(${id})
         geneid=${arr[0]}
grep  -w -A1 "$geneid" gene.fa >> geneid.fa
done
上一篇 下一篇

猜你喜欢

热点阅读