Translate

Image of Linux Kernel Development (3rd Edition)
Image of Beginning Google Maps API 3
Image of RHCE Red Hat Certified Engineer Linux Study Guide (Exam RH302) (Certification Press)
Image of Operating System Concepts

Zero Padding Brace Expansions in the Korn Shell

Both bash and zsh shells support leading zeros in ranges:

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {01..10}
01 02 03 04 05 06 07 08 09 10
$ echo {001..010}
001 002 003 004 005 006 007 008 009 010
$

From the bash manpage section on brace expansion:

Supplied integers may be prefixed with 0 to force each term to have the same
width. When either x or y begins with a zero, the shell attempts to force all
generated terms to contain the same number of digits, zero-padding where necessary

If you want a comma separated range of numbers, you can do something like:

$ echo {01..10} | tr ' ' ','
01,02,03,04,05,06,07,08,09,10

The Korn shell does not support the leading zero syntax in brace expansion. However it does support an equally powerful alternative syntax using %0d:

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {01..10%02d}
01 02 03 04 05 06 07 08 09 10
$ echo {01..10%03d}
001 002 003 004 005 006 007 008 009 010

$ echo {01..10%02d} | tr ' ' ','
01,02,03,04,05,06,07,08,09,10

Finally, you can also use this style of syntax to create a range of leading zero hexadecimals:

$ echo {7..18%02x}
07 08 09 0a 0b 0c 0d 0e 0f 10 11 12

Comments are closed.