Mit awk das Datum umschreiben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
carsten2
Beiträge: 109
Registriert: 26.09.2003 04:43:04

Mit awk das Datum umschreiben

Beitrag von carsten2 » 04.07.2004 19:17:10

Hallo,
ich habe hier ein Script, welches neben etlichen anderen Sachen auch eine Textdatei Zeilenweise einliest und die durch Semikolon getrennten Werte in eine tempioräre Datei schreibt:

Code: Alles auswählen

awk 'BEGIN {FS = ";"} 
	{print ("(\""$1"\",\""$2"\",\""$3"\",\""$4"\",\""$5"\",\""$6"\",\""$7"\",\""$8"\",\""$9"\",\""$10"\",\""$11"\",
\""$12"\",\""$13"\",\""$14"\",\""$15"\",\""$16"\",\""$17"\",\""$18"\",\""$19"\",\""$20"\",\""$21"\",\""$22)"\");";}' $datei >> $dir/sp
Das funktioniert auch wunderbar und ich kann die Datei dann mittels mysql in eine MySQL-Tabelle einlesen.Allerdings ist §3 ein Datumsfeld im Format dd.mm.yy und das wird von MySQL als yy.mm.dd interpretiert. Ich habe schon den halben Sonntag nach einer Möglichkeit gesucht, das umzuwandeln. Angeblich soll das mittels DATE_FORMAT ab Version 4.1.? in MySQL auch für Inserts möglich sein, aber das steht mir auf dem System wahrscheinlich nicht so schnell zur Verfügung. Kennt jemand dafür eine Lösung?
Achja, die Felder $12 bis $15 sind in der DB float-Felder und erwarten als Trennung einen Punkt. In der Datei habe ich aber noch Kommas als Trennung. Wie kann ich die am einfachsten ersetzen?
Der awk-Befehl wird aus einem Bash-Script aufgerufen und ich bekomme die Variablen von dort nicht zurück ins Bash-Script.

Carsten

Antworten