bash中前导零的范围

Ole*_*aev 17 bash

如何将前导零添加到bash范围?
例如,我需要循环01,02,03,..,29,30
如何使用bash实现这个?

Ken*_*ent 20

另一个seq技巧将起作用:

 seq -w 30
Run Code Online (Sandbox Code Playgroud)

如果您查看手册页,您将看到-w选项完全符合您的要求:

-w, --equal-width
              equalize width by padding with leading zeroes
Run Code Online (Sandbox Code Playgroud)


Tho*_*hor 19

在最近的bash版本中,您可以:

echo {01..30}
Run Code Online (Sandbox Code Playgroud)

输出:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Run Code Online (Sandbox Code Playgroud)

或者如果它应该以逗号分隔:

echo {01..30} | tr ' ' ','
Run Code Online (Sandbox Code Playgroud)

这也可以通过参数扩展来完成:

a=$(echo {01..30})
echo ${a// /,}
Run Code Online (Sandbox Code Playgroud)

输出:

01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
Run Code Online (Sandbox Code Playgroud)


P.P*_*.P. 5

您可以使用seq的格式选项:

seq -f "%02g" 30
Run Code Online (Sandbox Code Playgroud)