Справочная страница seq
объясняет опцию -f
следующим образом.
-f, --format=FORMAT
use printf style floating-point FORMAT
Вот пример.
$ seq -f 'logfile%02g.txt' 3
logfile01.txt
logfile02.txt
logfile03.txt
Я знаю, что он может сделать. Однако я не уверен насчет «ФОРМАТА с плавающей точкой в стиле printf
». Что такое %02g
и 3
для ??
Опция -f
использует формат внутренней команды printf
bash, как показано в следующей выдержке из результатов seq --help
:
$ seq --help
Usage: seq [OPTION]... LAST
or: seq [OPTION]... FIRST LAST
or: seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT.
-f, --format=FORMAT use printf style floating-point FORMAT
%02g
использует формат printf
внутренняя команда bash. %02g
обозначает использование выходного формата: %g
(по умолчанию), но с 0
перед номером. Ведущий 0
используется в качестве отступа только при необходимости для печати строк 1-9 последовательности. Заполнение 0
не требуется для печати строк 10-99 последовательности.
2 обозначает минимальный «размер символа» числа, который в данном примере составляет 2 символа. Если последовательность достаточно длинная, будет напечатано больше, чем минимальный размер символа числа, который начинается с минимального размера символа в два символа и автоматически регулируется по длине, если это необходимо, по мере увеличения напечатанной последовательности. Если заменить %02g
на %03g
, то будет напечатано минимум три числа. Если %02g
заменить на %01g
, то начальный отступ 0
для строк 1-9 опускается, и печатается минимум одно число.
3 в конце seq -f 'logfile%02g.txt' 3
- это длина последовательности, которая будет напечатана.