Ich muss eine CSV-Datei mit etwa 15 Spalten verarbeiten, von denen eine einen bestimmten Zeitstempel mit Millisekunden enthält. Wenn ich diese CSV-Datei in eine Datenbank einfügen möchte, erhalte ich aufgrund dieses bestimmten Zeitformats einen Fehler. Ich kann die anderen Spalten nicht bearbeiten, muss aber die Ausgabe der 6. Spalte kürzen und eine neue Datei erstellen.
Ein Beispiel ist:
73306758;Da Lavorare;;20300;RESTAROC;10/10/2014 16:37:22.425;PALAGIANO;TA;PUGLIA;;Libretto;IDENTITA;AI2000000;OK;DOC Valido;0;0;CCCMNN85X26X251X;OK;CF Attribuito;0;0
Antwort1
Angenommen, Sie möchten alle Fälle von :
gefolgt von Zahlen aus der 4. Spalte entfernen (in Ihrer Frage sagen Sie die 6., in Ihrem Beispiel ist es jedoch die 4.), können Sie eine der folgenden Optionen verwenden:
awk
awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
Perl (dadurch wird die aktuelle Datei geändert und das Original bleibt erhalten
file.csv.bak
)perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv