如何遍历我所有的.fasta文件?

时间:2018-12-26 10:11:43

标签: loops unix blast

我写了一个代码来遍历目录中的所有.fasta文件,但无法正常工作。我希望它与我的-db Viral.fna匹配并输出(fasta文件名).txt和-outfmt 6

我尝试了2种不同的密码

for f in file1.fasta file2.fasta etc ...
do blastn -db Viral.fna -query $f.fasta  -out $f_output3.txt -outfmt 6
Done

不起作用:给我这个错误

Command line argument error: Argument "query". File is not accessible:  `file1.fasta.fasta'and repeated for all the files

我也尝试过这个:

for f in 'ls *.fasta' 
do  blastn -db Viral.fna -query $f  -out $f_output3.txt -outfmt 6
Done

有人可以帮助我弄清楚如何使此循环有效吗,但我不断收到错误消息

Too many positional arguments (1), the offending value: 123.fasta

1 个答案:

答案 0 :(得分:0)

.fasta扩展名已经是$ f的一部分,因此请不要添加它。而且,如果任何文件名中都有空格,则必须在使用$ f的地方使用引号:

-query "$f" -out "$f"_output3.txt

此外,当您编写$ f_output3.txt时,shell会认为您想要使用一个名为f_output3的变量,该变量不存在