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.4h
não %2.1d
são especificadores de formato válidos para o date
comando 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 %B
e %d
respectivamente (você pode usar letras minúsculas %b
ou %h
para o nome abreviado do mês, por exemplo, Sep
para 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 May
para 4 caracteres, mas
$ date +'%4B %4d %H:%M' -d 'today + 4 months'
September 0012 08:03
não trunca September
para Sept
.
Consulte man date
para obter uma lista completa de %
especificadores.