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

관련 정보