Опция seq -f использует формат C printf с плавающей точкой?

Справочная страница 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 для ??

-1
задан 6 January 2018 в 18:12

1 ответ

Опция -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 - это длина последовательности, которая будет напечатана.

1
ответ дан 6 January 2018 в 18:12

Другие вопросы по тегам:

Похожие вопросы: