我有一个运行如下的python命令:
python script.py -file 1000G_EUR_Phase3_plink/1000G.NUMBER --out GTEx_Cortex.chrNUMBER
我想将NUMBER
变量替换为1:20的数字。因此,如果我将NUMBER
替换为1
,它将如下所示:
python script.py -file 1000G_EUR_Phase3_plink/1000G.1 --out GTEx_Cortex.chr1
这是第二次迭代(如果我用2替换):
python script.py -file 1000G_EUR_Phase3_plink/1000G.2 --out GTEx_Cortex.chr2
但我不想手动改变NUMBER
20次。我希望自动化整个事情。
如何在命令提示符下执行此操作?这应该在VIM中完成还是在python中有另一种方式?
谢谢!
答案 0 :(得分:2)
for i in `seq 1 20`;do python script.py -file 1000G_EUR_Phase3_plink/1000G.${i} --annot GTEx_Cortex_chr1.annot.gz --out GTEx_Cortex.chr${i};done
答案 1 :(得分:2)
如果你经常这样做,你也可以写一个bash脚本。
创建一个循环执行命令的文件run_stuff
。它可以类似于:
#!/bin/bash
n=$1
i=1
while (( i <= n )); do
python prog${i}.py
(( i = i + 1 ))
done
上述脚本运行prog1.py
,然后运行prog2.py
,依此类推。对于您的代码,只需将第5行替换为您想要的类似行。
然后在终端你会这样做:
chmod u+x run_stuff
./run_stuff 20
chmod
命令只是更改了文件的权限,因此您可以执行它。