Ответ Майкла не правильно. Если имя имеет место в беде:
$ ls
aaa bbb ccc ccc a
Последний пункт - «CCC A»
$ ls | grep -o -w '\w\{3\}'
aaa
bbb
ccc
ccc
Celada сказал правильный ответ:
$ ls ???
aaa bbb ccc
$ ls ?????
ccc a
Можно попробовать конструкцию 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
Другой путь:
for f in ./a.rst.*; do
ambpdb -prmtop < "$f" > "a.pdb.${f##*.}"
done