Execução da data do comando

Execução da data do comando

Estou tentando executar este comando date +'%-4.4h %2.1d %H:%M', mas a saída não está correta:

%-4.4h %2.1d 12:50  

Acredito que há algo errado com meu terminal Ubuntu ou com o código. Algum conselho, por favor? obs: iniciante

Responder1

Até onde eu sei, %-4.4hnão %2.1dsão especificadores de formato válidos para o datecomando GNU - em particular, modificadores de precisão não fazem sentido e não são suportados. Os modificadores aceitos são:

   After any flags comes an optional field width, as a decimal  number;  then  an  optional
   modifier,  which is either E to use the locale's alternate representations if available,
   or O to use the locale's alternate numeric symbols if available.

("decimal" aqui significa apenas dígitos de 0 a 9).

Os especificadores de formato para o nome completo do mês e o dia do mês são %Be %drespectivamente (você pode usar letras minúsculas %bou %hpara o nome abreviado do mês, por exemplo, Seppara September). Então, por exemplo:

$ date +'%B %d %H:%M'
May 12 07:46

$ date +'%B %d %H:%M' -d 'today + 4 months'
September 12 07:48

$ date +'%b %d %H:%M' -d 'today + 4 months'
Sep 12 07:50

Observe que os especificadores de largura de campo sãomínimolarguras, por exemplo

$ date +'%4B %4d %H:%M'
 May 0012 08:04

pads Maypara 4 caracteres, mas

$ date +'%4B %4d %H:%M' -d 'today + 4 months'
September 0012 08:03

não trunca Septemberpara Sept.

Consulte man datepara obter uma lista completa de %especificadores.

informação relacionada