在 bash 循环中迭代数字的不寻常增量步进模式



我有一些 ID 遵循这种不寻常的增量步进模式,如下所示:

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

我想构建一个循环,可以逐步迭代每个潜在的 ID,直到范围的末尾(即 601909(。

如何将数字分成这 3 个部分以管理循环的异常步进?

我已经看过seq,但我不知道如何让它接受这里的不寻常步骤,这样它就不会在上面作为潜在 ID 不存在的增量之间给我数字。

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

有什么想法吗?

尝试使用大括号扩展:

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

最新更新