Comando 'date +FORMAT' — Como são chamados %a, %A, %b, etc.?

Comando 'date +FORMAT' — Como são chamados %a, %A, %b, etc.?

O datecomando exibe a data e hora atuais assim: Fri Apr 12 15:04:03 UTC 2013.

Para ter a data e hora de saída em um formato personalizado, podemos usar date +FORMAT, por exemplo, assim: date "+%Y-%m-%dT%H:%M:%S%:z"que fornece algo como 2013-04-12T15:04:37+00:00.

Mas eu quero saber como %Y, %m, %d, %H, %M, %S, etc. são chamados coletivamente (ou seja, a terminologia). Além disso, como é Tchamado, já que é diferente dos demais?

Responder1

O termo usado na especificação POSIX dodatecomando é "especificações de conversão".

A string de formato do datecomando é baseada na string de formato da printffunção C; o padrão C também se refere a coisas como %d"especificações de conversão".

Tnão precedido por %é apenas um caractere: "Todos os outros caracteres devem ser copiados para a saída sem alterações."

De acordo com a seção de histórico de alterações da descrição POSIX de date:

O DESCRIPTION é atualizado para fazer referência às especificações de conversão, em vez de descritores de campo para consistência com a categoria LC_TIME.

Aparentemente, uma versão anterior da especificação usava a frase "descritores de campo", mas "especificações de conversão" é o termo oficial atual.

Claro que isso não significa que vocêterreferir-se a eles dessa maneira.

Responder2

Eu pensaria que "sequências de escape" ou (neste caso) "caracteres especiais para sequências de escape percentual" seriam a maneira típica de se referir a eles. Sequências com barras invertidas e escape percentual são muito usadas em C (por exemplo, printf), portanto elas também foram filtradas em vários comandos Unix (como especificar o prompt para o shell).

A "sequência de escape" é "%Y", "%m", "%d" e assim por diante; e os "caracteres especiais" são "Y", "m", "d" e assim por diante. "%" seria o "caractere de escape" (o caractere que dá ao caractere seguinte um significado incomum/especial).

Responder3

Esse documentodo Centro de Informações da IBM afirma claramente queos alfabetosem %Y, %m, %d, %H, %M, %S, etc. são chamados de "Descritores de Campo".

Você deve preceder cadadescritor de campocom um%(sinal de porcentagem). O sistema substitui o descritor de campo pelo valor especificado. [...] O datecomando copia quaisquer outros caracteres para a saída sem alterações.

Isso responde às minhas duas perguntas (sobre% n & T). E acredito que isso seja o mais confiável possível.

Responder4

Como outros afirmaram, the Té uma letra literal T. Mas, para ser mais específico, seu exemplo date "+%Y-%m-%dT%H:%M:%S%:z"parece ser uma string de formato em conformidade com oISO-8601especificação de data e hora. Então aqui Testá um delimitador que separa a data da hora.

informação relacionada