Я пытаюсь выполнить эту команду, date +'%-4.4h %2.1d %H:%M'
однако вывод неверный:
%-4.4h %2.1d 12:50
Я думаю, что что-то не так с моим терминалом Ubuntu или кодом. Есть ли у вас какие-нибудь советы? ps: новичок
решение1
Насколько мне известно, %-4.4h
и %2.1d
не являются допустимыми спецификаторами формата для команды GNU date
- в частности, модификаторы точности не имеют смысла и не поддерживаются. Принятые модификаторы:
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.
(«десятичная» здесь означает просто цифры от 0 до 9).
Спецификаторами формата для полного названия месяца и дня месяца являются %B
и %d
соответственно (можно использовать строчные буквы %b
или %h
для сокращенного названия месяца, например Sep
для September
). Например:
$ 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
Обратите внимание, что спецификаторы ширины поляминимумширины, например
$ date +'%4B %4d %H:%M'
May 0012 08:04
дополняется May
до 4 символов, но
$ date +'%4B %4d %H:%M' -d 'today + 4 months'
September 0012 08:03
не обрезается September
до Sept
.
man date
Полный список спецификаторов см %
.