Преобразование даты в оболочке 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 

  • Как сохранить результат printf в переменной в GDB?
  • Формат изменения даты в unix
  • Изменение значения motd в операционной системе UNIX
  • Резервное копирование логического тома LVM2
  • воспроизводить mp3-файл сразу после его загрузки
  • добавьте «проверить, запущен ли fetchmail» в этот скрипт
  • Каждая служба запускается дважды при загрузке Fedora 25
  • Как вы правильно извлекаете все синонимы команд из man-страниц в / usr / share / man / man1?
  • 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 делает что-то другое.)

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