Ich automatisiere einige Daten, die im .csv-Format generiert werden und ich stehe fest, wenn es darum geht, die Felder mit Datenwerten zu formatieren. Bitte hilf mir dabei.Wie ändert man das Datumsformat der Daten für jede Zeile in Unix?
Ich habe folgende Daten in einer CSV-Datei:
April 3 2016 FL 03112017 0
April 4 2016 CA 04022016 0
April 5 2016 TX 04302016 0
April 6 2016 OH 05292016 0
April 7 2016 AZ 06092016 0
April 8 2016 MA 06252016 0
Ich möchte die Datei wie folgt erstellen:
2016-04-03 FL 03112017 0
2016-04-04 CA 04022016 0
2016-04-05 TX 04302016 0
2016-04-06 OH 05292016 0
2016-04-07 AZ 06092016 0
2016-04-08 MA 06252016 0
ich versucht habe, es awk verwenden, mit so etwas wie dieses :
awk -F "\t" '{print "date -d "$1" +'%Y-%m-%d'",$2,$3}' file.csv > file1.txt
Das funktioniert nicht. Ich kann dem $ 1, der gedruckt werden soll, keinen resultierenden/berechneten Wert zuweisen.
Mögliche Duplikat [Converting Daten in AWK] (http://stackoverflow.com/questions/2121896/converting-dates-in-awk) – bufh
Nein, es ist kein dup davon, da dieser Eingang Probe enthält das Jahr. Außerdem ist die Antwort, die in dieser Frage ausgewählt wird, nicht groß, da das erste Skript darin unnötigerweise eine Subshell erzeugt und ein Shell-Werkzeug für jede Zeile in der Datei aufruft, wenn es nur einmal das Jahr herausfinden und dann drucken musste den Text in jeder Zeile mischen und die zweite Antwort verwendet "getline" falsch (kein Test/Schutz für Fehler). –