bash:嵌入时读取&用于文件输入 - 无输出

时间:2017-08-21 09:21:24

标签: bash while-loop blast

我有以下文件结构:

db/organism1.fasta
db/organism1.fasta.nhr
db/organism1.fasta.nin
db/organism1.fasta.nsq
db/organism2.fasta
db/organism2.fasta.nhr
db/organism2.fasta.nin
db/organism2.fasta.nsq
sequences/abc123.faa
sequences/def456.faa
numbers.txt

numbers.txt

abc123
def456

现在我想

  1. 读取文件numbers.txt的每一行 - 每个数字代表dir sequences
  2. 中的文件
  3. 从dir *.fasta
  4. 中获取每个db文件
  5. 做某事(在这种情况下,每个数据库对序列的搜索)
  6. numbers.txt
  7. 中的每一行输出一个文件

    这是我的尝试:

    while read line
       do for file in db/*.fasta
          do tblastn -db $file -query sequences/$line.faa -evalue 1e-10 -outfmt 7 >>$line_blastn.txt
       done
    done<numbers.txt
    

    但是没有写文件。为什么呢?

1 个答案:

答案 0 :(得分:3)

$line_blastn被视为一个变量。由于该变量从未分配任何值,因此输出文件将只是.txt。以点开头的文件隐藏在Linux和Max OS中,因此您无法看到输出文件。

... >> "${line}_blastn.txt"写为仅使用line作为变量。