Преобразование даты в оболочке bash

У меня есть файл csv (с именем a.csv ), экспортированный из DB mongo следующим образом:

 ... ABC,DN,1000,RENEW_DAY,Thu Apr 27 2017 23:19:47 GMT+0700 (ICT),1,1,4,-1 ANSLAS,DN,1000,RENEW_DAY,Thu Apr 27 2017 23:19:52 GMT+0700 (ICT),1,1,4,-1 ... 

Я хочу импортировать этот файл в MySQL, но этот формат даты не может быть вставлен. Поэтому у меня есть идея, чтобы преобразовать это как b.csv перед вставкой в ​​MySQL

 ... ABC,DN,1000,RENEW_DAY,2017-04-27 23:19:47,1,1,4,-1 ANSLAS,DN,1000,RENEW_DAY,2017-04-27 23:19:52,1,1,4,-1 ... 

Это команда bash bash, которую я использую для преобразования даты в дате bash date -d"Thu Apr 27 2017 23:19:52 GMT+0700 (ICT)" +'%Y-%m-%d %H:%M:%S'

Итак, как я могу преобразовать это автоматически с помощью оболочки bash, как это ./process.sh a.csv b.csv ?

process.sh

 #!/bin/bash # Environment filename=$1 filelines=`cat $filename` for phone in $filelines ; do <HOW CAN CUT Filed Date and convert this and export to b.csv file> done 

One Solution collect form web for “Преобразование даты в оболочке bash”

Вы можете использовать команду read для разделения полей. Поэтому вы должны установить переменную разделителя полей , чтобы указать, что поля разделены запятой. Вы можете позже изменить его, если вам нужно сделать другие вещи в скрипте:

 #!/bin/bash oldIFS=$IFS IFS=, while read abcdefghi; do echo "$a,$b,$c,$d,$(date -d"$e" +'%Y-%m-%d %H:%M:%S'),$f,$g,$h,$i" done < "$1" IFS=$oldIFS 

(Это предполагает дату GNU, -d например, дата FreeBSD делает что-то другое.)

  • Сохранение вывода команды в переменной оболочки
  • Как сжать команду chmod UNIX
  • bash - получить pid для скрипта, используя имя файла сценария
  • Запуск программы GUI при запуске
  • Есть ли способ имитировать событие «Закрыть» в разных окнах с помощью терминала?
  • Как я могу проверить, запущена ли программа из сценария
  • Как сохранить результат printf в переменной в GDB?
  • Base64 декодирует и перезаписывает файл
  • неверная ошибка даты для% m% d% Y
  • Проверьте процесс, если он работает
  • Петля игнорирует изменение переменной из подоболочки в фоновом режиме
  • Подождите, пока разветвленный процесс откроет окно
  • Interesting Posts

    Данные подмножества с awk

    Передавать аргументы команде, запущенной другим пользователем

    Дублирование файловых дескрипторов при перенаправлении

    скрипт советника iptables

    Сохраняются ли журналы на прошлой работе?

    Как я могу распечатать и выйти из bash, если оператор backtick не работает

    Скажите dhclient, чтобы не использовать интерфейс

    Удалить все файлы в каталоге

    Удалите все файлы, к которым не существует соответствующий файл с другим расширением.

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

    Почему после этого точка с запятой не принимается?

    Как написать файл systemd .service с запущенным systemd-tmpfiles

    Сценарии Bash, запущенные из gnome / nautilus, не имеют переменных окружения

    Как назначить результат sed переменной

    Как настроить или перепрограммировать функцию определенных клавиш на моей клавиатуре и светодиод на моем ноутбуке

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