seq -f usa um formato de ponto flutuante C printf?

-1

A página seq man explica a opção -f como esta.

-f, --format=FORMAT
             use printf style floating-point FORMAT

Aqui está um exemplo.

$ seq -f 'logfile%02g.txt' 3
logfile01.txt
logfile02.txt
logfile03.txt

Eu sei o que isso pode fazer. No entanto, não tenho certeza sobre o " printf style floating-point FORMAT". Quais são %02g e 3 para ??

    
por Smile 06.01.2018 / 09:37

1 resposta

1

A opção -f usa o formato do comando printf internal bash conforme mostrado no seguinte trecho dos resultados de 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 usa o formato do comando printf internal bash. O %02g representa o formato de saída: %g (que é o padrão), mas com 0 na frente do número. O 0 inicial é usado como preenchimento apenas se necessário para as linhas de impressão 1-9 da sequência. Não é necessário o preenchimento de 0 para as linhas de impressão 10 a 99 da sequência.

O 2 representa o "tamanho de caractere" mínimo do número que é 2 caracteres neste exemplo. Se a sequência for longa o suficiente, será impresso mais do que o tamanho mínimo de caracteres do número, que começa no tamanho mínimo de dois caracteres e se ajusta automaticamente em tamanho, se necessário, conforme a sequência impressa é incrementada. Se %02g for substituído por %03g , um mínimo de três números será impresso. Se %02g for substituído por %01g , o preenchimento 0 inicial para as linhas 1-9 será omitido e um mínimo de um número será impresso.

O 3 no final de seq -f 'logfile%02g.txt' 3 é o comprimento da sequência que será impressa.

    
por karel 06.01.2018 / 11:48