使用bash循环将循环下载的文件链接到文本列表中的标识符

时间:2018-06-28 08:49:39

标签: bash ncbi

我有一个bash循环,它使用python程序循环遍历列表(文本文件)中的每个标识符,以下载基因组(文件),我想知道是否有一种方法可以将每个文件下载链接到列表中的ID,因为下载的文件的名称使以后使用起来更加困难。

bash中的循环:

loop2

反正有可能吗?

1 个答案:

答案 0 :(得分:1)

确定应该有办法。但是我们需要更多信息:正在下载的文件的名称是什么?

for i in $(<idpandas.txt)
do
    echo $i
    ncbi-genome-download --format protein-fasta --species-taxid $i archaea,bacteria
    ln -s $DOWNLOAD_NAME $i
done

顺便说一句,不要在元素的循环列表中使用“更多”,它是一个寻呼机,在这种情况下会给您带来问题。 链接就像“ ln”行一样容易。我敢打赌,您的问题是知道哪个文件名正在生成。但这也不是我们所不知道的。

使用我的评论之一中建议的肮脏方式,可以将所需文件存储在具有ID的文件夹下。我不知道您的下载脚本如何工作,但是我认为以下代码可以解决问题:

for i in $(<idpandas.txt)
do
    echo $i
    mkdir $i
    cd  $i
    ncbi-genome-download --format protein-fasta --species-taxid $i archaea,bacteria
    cd ..
done

这应该为您提供一堆名为idpandas.txt文件中的ID的文件夹,并且在每个文件夹中都有您的工具下载的文件。