Как конвертировать дату с «Oct 01 20:00» в формат «1 октября 20:00» (пробел)?

Здесь Oct 01 должен быть напечатан как Oct 1 т. Е. Без 0. Мне нужно два пробела между Oct и 1, например, Oct 1 .

  • Создайте каталог с сегодняшней датой и переместите в него файлы
  • Что касается даты получения - n дней Дата
  • сначала не обрабатывается первый параметр, если он не равен 1
  • вырезать фрагмент файла в зависимости от времени написания строк
  • Программно использовать visudo для редактирования sudoers?
  • find arcana: невозможно заставить трубу работать в линии -exec
  • Улучшение генерации ложных данных
  • Запуск нескольких программ в фоновом режиме и проверка их возвращаемого значения
  • Как найти файлы к моменту их имени?
  • Резервное копирование файлов, которые были изменены после последней резервной копии
  • Один макет mkdir с именем каталога как дни?
  • Сценарий оболочки ждет команды фона
  • 2 Solutions collect form web for “Как конвертировать дату с «Oct 01 20:00» в формат «1 октября 20:00» (пробел)?”

    date GNU:

     date -d "Oct 01 20:00" "+%b %_d %k:%M" 

    Где:

    • %b : название сокращенного месяца локали (например, Jan)
    • %_d : день месяца (пробел)
    • %k : час (0,23)
    • %M : минута (00..59)

    Ouput:

     Oct 1 20:00 

    Если вы хотите преобразовать эти строки, если их найдете в некотором тексте, и только когда они будут следовать этому конкретному шаблону Mmm dd HH:MM в системе GNU или FreeBSD (и производных), вы можете сделать следующее:

     sed -E "s/($(locale abmon|tr ';' '|')) 0([0-9] [0-2][0-9]:[0-5][0-9])/\1 \2/g" 

    Он берет список сокращений имени месяца от результата locale abmon чтобы адаптироваться к предпочтению локализации вызывающего. Используйте LC_ALL=C locale abmon чтобы LC_ALL=C locale abmon сокращения имени английского месяца.

    Linux и Unix - лучшая ОС в мире.