Повторение необычного пошагового набора чисел в цикле bash - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть несколько идентификаторов, которые следуют этому необычному пошаговому шаблону, например:

eg600100.etc
eg600101.etc
eg600102.etc
...
eg600109.etc
eg600200.etc
...
eg600209.etc
eg600300.etc
...
eg600909.etc
eg601000.etc
eg601001.etc
...
eg601009.etc
eg601100.etc
...
eg601200.etc
...
eg601909.etc

Насколько я могу судить, оно разбито так:

60|01-19|00-09

Я хочу построить цикл, который может последовательно перебирать каждый потенциальный идентификатор до конца диапазона (который равен 601909).

Как мне разбить число на эти 3 сегмента, чтобы управлять необычным пошаговым циклом?

Я посмотрел на seq, но не могу понять, как заставить его принять необычный шаг, чтобы он не давал мне числа между приращениями, которые не существуют в качестве потенциальных идентификаторов, как указано выше.

#!/bin/bash
for id in $(seq -w 601909)
do
  echo "Testing current ID, which is eg$id.etc"
done

Есть идеи?

1 Ответ

2 голосов
/ 27 апреля 2019

Попробуйте использовать расширение Brace:

printf %s\\n eg60{01..19}{00..09}.etc >file

Запустите это как тест, но вы можете повторить такое расширение:

for id in eg60{01..19}{00..09}.etc; do echo Testing ID: $id; done
...