将命令应用于目录中的所有文件

将命令应用于目录中的所有文件

我想将以下命令应用于当前目录中的所有文件

clustalw -align -infile=*here goes the input filename* -outfile=*here goes the output filename*

我还希望输出文件名与输入文件名相同加上“.aln”。例如:

clustalw -align -infile=nexus0000.fna -outfile=nexus000.fna.aln

谢谢您的帮助!

答案1

您可以使用 for 循环和按文件扩展名进行通配:

for file in *.fna; do
    clustalw -align -infile="$file" -outfile="$file.aln"
done

如果您想使用单个命令,可以使用find

find . -maxdepth 1 -type f -iname "*.fna" -exec clustalw -infile {} -outfile {}.aln  \;

相关内容