首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为文件中的每一行运行程序

如何为文件中的每一行运行程序
EN

Stack Overflow用户
提问于 2019-02-04 21:41:09
回答 1查看 59关注 0票数 0

我有一个类似file.txt的文件:

代码语言:javascript
复制
Specie1
Specie2
Specie3

我有一个在这3个物种上运行的程序,叫做bedtools getfasta

所以我的想法是:

代码语言:javascript
复制
cat file_species.txt |
while read line; do 
    bedtools getfasta -fi /path/${line}/${line}.fa -bed /path/${line}/Recover_fasta.bed -s -fo /path/${line}/Fasta_loci_seq.fa" ;
done

如果我做一个echo,我会得到:

代码语言:javascript
复制
bedtools getfasta -fi /path/Specie1/Specie1.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done
bedtools getfasta -fi /path/Specie2/Specie2.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done
bedtools getfasta -fi /path/Specie3/Specie3.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done

如果我只是跳过这些代码,那么我怎么能在"do"之后的第一个脚本中执行它,而不是执行回显,然后粘贴代码呢?

EN

回答 1

Stack Overflow用户

发布于 2019-02-04 22:35:31

去掉尾部的双引号和分号,用"$line"替换${line}

代码语言:javascript
复制
cat file_species.txt |
while read line; do 
    bedtools getfasta -fi /path/"$line"/"$line".fa -bed /path/"$line"/Recover_fasta.bed -s -fo /path/"$line"/Fasta_loci_seq.fa
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54517386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档