@redcircle

Как сделать так, чтобы в утилитах командной строки Linux дата отображалась в формате 31.XII.23?

Нужно чтобы в программах командной строки Linux, печтающих дату и использующих локаль (ls, watch, date, итп) дата (короткий вариант) печаталась бы так 20.V.24 (число.римский-месяц.год).
A если месяц печатается отдельно (как в ls -l), то он бы печатался римской цифрой.

Предполагаю, что нужно либо указать exportLC_TIME=что-то,
либо самому создать такую локаль и указать её в LC_TIME

Как это сделать проще всего?
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
изменить строчку в /usr/share/i18n/locales/ru_RU в соответствии с man date (но изменения затрутся при обновлении пакета локалей)
либо сделать копию, изменить в ней

d_t_fmt " "
date_fmt " "
d_fmt " "
t_fmt " "

апосля перегененировать локали sudo locale-gen
и поменять локалку в системе.
Ответ написан
@SunTechnik
Как грязный хак:
В выше указанном файле (/usr/share/i18n/locales/ru_RU ) приведены названия месяцев в кодировке Unicode.
abmon - сокращенные названия
mon - полные названия.

Заменяем названия на строки, соответствующие написанию римской цифры.

Тут лезет проблема: сокращенное название месяца должно быть 3-х символьное.
А у нас есть август: VIII ( 4 символа).
Тут может спасти использование юникод (https://ru.wikipedia.org/wiki/%D0%A0%D0%B8%D0%BC%D...) , тогда это будет вообще один символ, но не факт, что в используемом шрифте будут эти символы.

Вообще говоря, не обязательно ломать именно русскую локаль, можно и свою создать...
После правок - надо перегенерировать локали.. ( как указано у pfg21)

Готовой такой локали нет, поэтому или ломать какую-то или создавать новую...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы