我有一个包含大量文件的文件夹,我想对某些文件执行操作。我有文件" BlaBla_01.mat"," BlaBla_02.mat"最高为" BlaBla_11.mat"
{ time mpiexec -n 40 ./runex @alg.param BlaBla_01.mat; }
- >这会生成2个输出文件。我需要重命名并移动它们......
mv FirstOut.log My/Folder/Results/FirstOut_BlaBla_01.log
mv NextOut.log My/Folder/Results/NextOut_BlaBla_01.log
如何在for循环中进行此操作以便按原样处理和重命名文件?
我试过了:
NUMS='01 02 03 04 05 06 07 08 09 10 11'
for i in $NUMS;
do
FILENAME="BlaBla_"$i".mat"
{ time mpiexec -n 40 ./runex @alg.param $FILENAME; }
mv FirstOut.log "My/Folder/Results/FirstOut_BlaBla_"$i".log"
mv NextOut.log "My/Folder/Results/NextOut_BlaBla_"$i".log"
done;
及其中的许多变体,但它不起作用。
我很抱歉这一定是一个非常简单的问题,但我不是程序员所以这是我在shell脚本上的第一周
提前谢谢你,
周末愉快
的Seb
答案 0 :(得分:0)
试试这个:
NUMS='01 02 03 04 05 06 07 08 09 10 11'
for i in ${NUMS[@]};
do
FILENAME="BlaBla_"$i".mat"
{ time mpiexec -n 40 ./runex @alg.param $FILENAME; }
mv FirstOut.log "My/Folder/Results/FirstOut_BlaBla_"$i".log"
mv NextOut.log "My/Folder/Results/NextOut_BlaBla_"$i".log"
done;
答案 1 :(得分:0)
我会把它写成
for root in BlaBla_{01..11}; do
time mpiexec -n 40 ./runex @alg.param "$root.mat"
mv FirstOut.log "My/Folder/Results/FirstOut_$root.log"
mv NextOut.log "My/Folder/Results/NextOut_$root.log"
done;
需要使用bash进行大括号扩展