Bashを介して番号付きファイルを処理する

Bashを介して番号付きファイルを処理する

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

関連情報