我有一组文件 a.rst.1、a.rst.2、....、a.rst.5000
我需要为每一个运行此命令:
ambpdb -p prmtop < a.rst.x > a.pdb.x
其中 x 代表该文件的编号。有没有一种简单的方法可以通过 bash 来做到这一点?
答案1
您可以尝试与内置等效的bash
{1..5000}
构造:bash
$(seq 1 5000)
for i in {1..5000}; do
ambpdb -p prmtop < a.rst.$i > a.pdb.$i
done
如果上限太大,一种替代方法是使用简单的循环计数器:
i=1
while [ $i -le 5000 ]; do
ambpdb -p prmtop < a.rst.$i > a.pdb.$i
i=$((i+1))
done
答案2
另一种方式:
for f in ./a.rst.*; do
ambpdb -prmtop < "$f" > "a.pdb.${f##*.}"
done