Мне нужно установить дату окна Linux со строкой, которую я получаю из программы. Эта строка отформатирована как ddmmyy. Можно ли использовать это напрямую или мне нужно сначала переформатировать его?

В настоящее время я безуспешно пробовал следующее:

 date +%d%m%y -s "071012"

Это должно быть 7. Октябрь 2012, но интерпретируется задом наперед и становится 12. 07 октября

Если я попытаюсь указать дату для использования обратного формата:

date +%y%m%d -s "071012"

это все еще будет читать это как 12. 07 октября Я бы предпочел не менять строку, потому что я думал, что дата сможет позаботиться об этом.

2 ответа2

3

+ Устанавливает только формат вывода . Вам необходимо предварительно отформатировать строку, если вы хотите использовать опцию -s (либо путем изменения вашей программы, либо с помощью, например, sed).

В вашем случае вы можете передать результат вашей программы в это:

sed -e "s/\(..\)\(..\)\(..\)/\\3\\2\\1/"
0

Сохраните дату в переменной оболочки, и вы можете установить дату следующим образом:

dt=`your_program`
date -s "${dt:4:2}${dt:2:2}${dt:0:2}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .