如何使用 for 循环对具有唯一输出文件的多个文件运行命令?

如何使用 for 循环对具有唯一输出文件的多个文件运行命令?

我需要对目录中的 1000 个文件使用以下语法运行命令,并将每次迭代的输出保存到唯一的文件中。

command universalinputfile variableinputfile > outputfile

例如

MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_1rndb > motifoutput/output_1

MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_2rndb > motifoutput/output_2

我尝试使用下面的 for 循环但没有成功。

for i in {1..1000}
do
        MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_$irndb > motifoutput/output_$i
done

我还尝试过使用“for file in /dir”格式的 for 循环,但没有成功。

我怎样才能做到这一点?

答案1

$irndb被读取为一个名为 的单个变量irndb。你可以更改解析以用作i变量名称${i}rndb:

for i in {1..1000}
do
        MotifPSSM ../source/FruR-DPInteract.txt genrand/randomseq_${i}rndb > motifoutput/output_$i
done

for本身很好,包括大括号扩展 {1..1000},所以你不需要改变它。

相关内容