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

How can i loop through all my .fasta files?

我写了一个代码来遍历我目录中的所有 .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

.fasta 扩展名已经是 $f 的一部分,所以不要添加它。如果任何文件名中有空格,则必须在使用 $f:

的地方使用引号
-query "$f" -out "$f"_output3.txt

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