Опция 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 ответ

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

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