Ich versuche, eine HTML-Datei mit einer Tabelle mithilfe eines bash
-Skripts in eine .csv-Datei umzuwandeln.
Bisher habe ich die folgenden Schritte abgeschlossen:
- In Unix-Format konvertieren (mit
dos2unix
) - Alle Leerzeichen und Tabs entfernen (mit
sed 's/[ \t]//g'
) - Alle leeren Zeilen entfernen (mit
sed ':a;N;$!ba;s/\n//g'
) (das ist notwendig, da die HTML-Datei für jede Zelle der Tabelle eine leere Zeile hat... das ist nicht meine Schuld) - Die unnötigen und Tags entfernen (mit
sed 's///g'
) - durch ',' ersetzen (mit
sed 's/<\/td/,/g'
) - durch Zeilenumbrüche (
\n
) ersetzen (mitsed 's/<\/tr/\n/g'
)
Natürlich führe ich all dies in einer Pipeline aus. Bisher funktioniert es gut. Es gibt einen letzten Schritt, bei dem ich stecken geblieben bin: Die Tabelle enthält eine Spalte mit Datumsangaben im Format dd/mm/yyyy
, und ich möchte sie in yyyy-mm-dd
umwandeln.
Gibt es einen (einfachen) Weg, dies zu tun (mit sed
oder awk
)?
Datenbeispiel (nach dem gesamten sed
-Befehl):
500,2,13/09/2007,30000.00,12,B-1
501,2,15/09/2007,14000.00,8,B-2
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 das tun muss, ist, dass ich diese Daten in MySQL importieren muss. Ich könnte die Datei in Excel öffnen und das Format manuell ändern, aber ich würde das gerne überspringen.