seq -f 选项使用 C printf 浮点格式吗?

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选项使用内部 bash 命令的格式printf,如以下结果摘录所示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使用内部 bash 命令的格式printf%02g代表使用输出格式:(%g这是默认格式),但0在数字前面有一个。0仅在需要打印序列的第 1-9 行时才使用前导作为填充。0打印序列的第 10-99 行不需要填充。

2 代表数字的最小“字符大小”,在本例中为 2 个字符。如果序列足够长,则打印的数字将超过最小字符大小,该数字从两个字符的最小字符大小开始,并随着打印序列的增加而根据需要自动调整长度。如果%02g被替换,%03g则至少打印三个数字。如果%02g被替换,%01g则省略 1-9 行的前导0填充,并打印至少一个数字。

末尾的 3seq -f 'logfile%02g.txt' 3是将要打印的序列的长度。

相关内容