Ответ 1
будет работать другой трюк seq:
seq -w 30
если вы проверите man-страницу, вы увидите, что параметр -w соответствует вашим требованиям:
-w, --equal-width
equalize width by padding with leading zeroes
Как добавить начальный ноль в диапазон bash?
Например, мне нужен цикл 01,02,03,.., 29,30
Как реализовать это с помощью bash?
будет работать другой трюк seq:
seq -w 30
если вы проверите man-страницу, вы увидите, что параметр -w соответствует вашим требованиям:
-w, --equal-width
equalize width by padding with leading zeroes
В последних версиях bash вы можете:
echo {01..30}
Вывод:
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
Или, если он должен быть разделен запятыми:
echo {01..30} | tr ' ' ','
Что также может быть достигнуто с расширением параметра:
a=$(echo {01..30})
echo ${a// /,}
Вывод:
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
Вы можете использовать опцию seq format:
seq -f "%02g" 30
"Чистый bash" способ будет примерно таким:
echo {0..2}{0..9}
Это даст вам следующее:
00 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
Удаление первого 00 и добавление последних 30 не слишком сложно!
Это работает:
printf " %02d" $(seq 1 30)