Обработка пронумерованных файлов через bash

Ответ Майкла не правильно. Если имя имеет место в беде:

$ 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
-1
08.05.2015, 22:43
2 ответа

Можно попробовать конструкцию 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
3
28.01.2020, 05:06

Другой путь:

for f in ./a.rst.*; do
  ambpdb -prmtop < "$f" > "a.pdb.${f##*.}"
done
2
28.01.2020, 05:06

Теги

Похожие вопросы