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

问题描述 投票:0回答:1

我有一些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

有任何想法吗?

bash loops sequence seq
1个回答
2
投票

尝试使用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
© www.soinside.com 2019 - 2024. All rights reserved.