Ich habe ein paar tabulatorgetrennte Dateien.
Jede Datei ist folgendermaßen aufgebaut:
ID Title Rating Date_Rated
Was ich tun möchte, ist, alle diese Dateien in einer zusammenzuführen und nur die neueste Bewertung beizubehalten.
file1 kann folgende Daten enthalten:
70202148 Sherlock Holmes: A Game of Shadows 5 28/12/13
file2 kann folgende Daten enthalten:
70202148 Sherlock Holmes: A Game of Shadows 4.5 25/12/13
dd/mm/yy
, oder könnten einige von ihnen seindd/m/yy
,d/mm/yy
, oderd/m/yy
?Antworten:
Angenommen, das Datumsfeld ist in
dd/mm/yy
Das folgende Format sollte den Trick machen:quelle
Die Verwendung von Shell-Tools für diese Aufgabe wäre gefährlich wie
sort
wird nicht in der Lage sein, Datumsformate zu verstehen. Ein Beispiel ist, dass, wenn Sie Miroslavs Code in der folgenden Datei ausführen, die Ausgabe die Zeile mit Datumsaufzeichnung druckt28/02/14
was falsch ist.Anstatt Shell-Tools zu verwenden, müssen wir dafür übergeordnete Skript- / Programmiersprachen verwenden. Sie können dafür Python, Perl, Ruby oder eine andere Sprache verwenden. Unten ist ein
Python
Skript, das den Job macht.Ausgabe:
quelle
sort
funktioniert problemlos mit einigen Einschränkungen (z. B. festes Datumsformat), außerdem ist die Möglichkeit, mehrere Zeilen mit demselben Datum zu haben, nicht sonderlich wichtig (eine stabile Sortierung kann ein Ansatz sein).