Verwenden sed oder awk zu beheben Datumsformat

Ich versuche zum konvertieren einer HTML-Datei mit einer Tabelle ein .csv-Datei mit einem bash Skript.

Bisher habe ich acomplished Sie die folgenden Schritte aus:

  1. Konvertieren ins Unix-format (mit dos2unix)
  2. Entfernen Sie alle Leerzeichen und tabs (mit sed 's/[ \t]//g')
  3. Entfernen Sie alle leeren Zeilen (mit sed ':a;N;$!ba;s/\n//g') (dies ist notwendig, da der HTML-Datei eine leere Zeile für jede Zelle der Tabelle... das ist nicht meine Schuld)
  4. Entfernen Sie die unnecesary <td> und <tr> - tags (mit sed 's/<t.>//g')
  5. Ersetzen </td> mit ',' (mit sed 's/<\/td/,/g')
  6. Ersetzen </tr> mit end-of-line (\n) Zeichen (mit sed 's/<\/tr/\n/g')

Natürlich, ich bin putting all dies in einer pipeline. So weit, ist es großartig. Es gibt einen letzten Schritt bin ich stecken geblieben: Die Tabelle hat eine Spalte mit Daten, die das format dd/mm/yyyy, und ich möchte Sie zu konvertieren yyyy-mm-dd.

Gibt es eine (einfache) Möglichkeit, es zu tun (mit sed oder awk)?

Daten Probe (nach dem ganzen sed Rohr):

500,2,13/09/2007,30000.00,12,B-1
501,2,15/09/2007,14000.00,8,B-2

Erwartete Ergebnis:

500,2,2007-09-13,30000.00,12,B-1
501,2,2007-09-15,14000.00,8,B-2

Der Grund, warum ich brauchen, um dies zu tun ist, weil ich brauchen, um diese Daten importieren zu MySQL. Ich könnte die Datei in Excel öffnen und ändern Sie das format von hand, aber ich würde gerne überspringen.

InformationsquelleAutor Barranka | 2013-08-26

Schreibe einen Kommentar