Укажите формат даты ввода для / bin / date - PullRequest
1 голос
/ 06 октября 2010

Я создаю сценарий Unix bash, который анализирует файл журнала веб-сервера и вставляет эти данные в базу данных. Поэтому мне нужно преобразовать метку времени в формате «05 / Oct / 2010: 07: 38: 40 +0400» в «ГГГГ-мм-дд».

Я пытался использовать / bin / date -d, но он не принимает данный формат. Я не смог найти способ указать формат ввода даты для этого инструмента. Возможно ли это или я должен рассмотреть альтернативное решение?

Ответы [ 2 ]

0 голосов
/ 06 октября 2010
input_date="05/Oct/2010:07:38:40 +0400"
better_date=`echo $input_date | sed -E 's|(..)/(...)/(.{4}).*|\1 \2 \3|'`
date -I -d "$better_date"
0 голосов
/ 06 октября 2010

Вам нужно:

 date +%F

Кроме того, похоже, это работает:

date -d "05 Oct 2010 07:38:40 +0400" +%F

Вы должны использовать пробелы в качестве разделителей, а не / или : .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...