Ich habe eine Sehr große (13 GiB) CSV-Datei (3856321 Zeilen und 1698), wo wie erwartet einige der Daten anders formatiert sind. Die Datei sieht aus wie ::Formatieren und Konvertieren von Datum und Uhrzeit
2013/01/08 2:11:30 AM,abdc,good time ...
2015/12/28 8:19:30 PM,abdc,good time ...
2/15/2016 10:46:30 AM,kdafh,almost as good ...
12/13/2014 10:46:00 PM,asjhdk,not that good ...
02-Jan-2014,bad time,good time ...
1/1/2015,nomiss time,boy ...
10/15/2016 17:08:30,bad,boy ...
ich es zu einem gleichen Zeit Format konvertieren wollen, und erforderliche Ausgabe ist ::
1/8/2013 2:11:30,abdc,good time
12/28/2015 20:19:30,abdc,good time
2/15/2016 10:46:30,kdafh,almost as good
12/13/2014 22:46:00,asjhdk,not that good
1/2/2014 00:00:00,bad time,good time
1/1/2015 00:00:00,nomiss time,boy
10/15/2016 17:08:30,bad,boy
ich die Zeit mit Hilfe der folgenden Skripte zu formatieren verwaltet
awk -F ',' 'BEGIN{FS=OFS=","}{split($1,a," ");
if(a[3]=="PM")
{ split(a[2],b,":");
b[1]=b[1]+12
a[2]=b[1]":"b[2]":"b[3]
};
if(a[2]=="")
{
a[2]="00:00:00"
}
tmp=a[1];
# tmp2=system("date -d `tmp` +%m/%d/%Y");
# print tmp2
$1=tmp" "a[2]
}1' time_input.csv
Ich borgte die Idee der Formatierung von Daten aus Frage https://unix.stackexchange.com/questions/177888/how-to-convert-date-format-in-file , die in der vorletzten Zeile auskommentiert ist. Dies funktioniert jedoch in meinem Fall nicht. Ich erhalte einen Fehler
date: invalid date ‘+%m/%d/%Y’
Gibt es einen einfacheren und besseren Weg, dies zu tun? Vielen Dank im Voraus
Danke! Obwohl es das tut, wonach ich gefragt habe, akzeptiere ich das obige Python-Beispiel, weil das für größere Dateien etwas schneller schien. Vielen Dank! – discipulus