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

  • Нужен сценарий Linux для планирования работы без использования Cron или
  • Преобразование файла машинописного текста в список команд (история)
  • отображение даты после определенного числа дней путем чтения номера
  • почему существует случайное поведение для фоновой работы?
  • Nautilus-script для перемещения файла в один и тот же каталог имен
  • Запуск программы GUI при запуске
  • Петля игнорирует изменение переменной из подоболочки в фоновом режиме
  • Сплит PDF в документы с несколькими страницами каждый
  • 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 делает что-то другое.)

    Interesting Posts

    Объединить ассоциативные массивы Bash

    CentOS Запуск процесса не реагирует на сигналы kill, а не переключается по контексту

    Защитить папку от sudoers

    Debian: создание сжатого жесткого диска для копирования

    Дисплей памяти с использованием md в u-boot

    Какие параметры сети необходимо изменить, чтобы получить доступ к моей гостевой оракуле Linux с встроенной виртуальной машиной с моего хоста?

    Nix: Пропуск единичных тестов при установке пакета Haskell

    Некоторые сайты загружаются, а другие загружаются навсегда в Linux Mint 18

    как установить arch linux на 32-битную систему

    Вопрос о взломанной машине и специальных символах в имени файла

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

    Связь раскладки клавиатуры и xmodmap

    du: объединить обе метки времени

    Должен ли я ставить старые проекты в tarballs

    Использовать имя сервера вместо IP-адреса

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