Ich gehe davon aus, dass das <br>
in Ihrer Frage am Ende der date
Kolumne etwas Unerwünschtes ist. In jedem Fall kann es leicht entfernt werden, wenn es vorhanden ist. Wenn Sie jedoch zum Hauptteil kommen, können Sie erreichen, was Sie versuchen, mit,
sort -k 2n filename.txt
Mit dem obigen Befehl wird die Ausgabe nun sortiert ausgegeben. Der folgende Befehl sollte nun das geben, wonach Sie suchen.
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Erläuterung
Der Befehl sort sortiert die Datei grundsätzlich nach der zweiten Spalte, die das Datum ist. Deshalb habe ich Ihre Eingabedatei geändert, um den Befehl zu testen, ob er funktioniert, da in der Eingabedatei standardmäßig alle Daten sortiert sind. Danach awk
druckt der Befehl alle Zeilen, bis wir auf eine bestimmte Übereinstimmung stoßen.
Testen
cat filename.txt
647919 2014/01/01
647946 2012/11/30
647955 2011/01/04
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04
Jetzt ist die sort -k 2n filename.txt
Ausgabe,
647955 2011/01/04
647946 2012/11/30
648266 2013/12/03
648267 2013/12/03
648674 2013/12/04
647919 2014/01/01
Jetzt sind wir zufrieden, dass die Datei in der zweiten Spalte sortiert ist. Um nun Werte bis zu einem bestimmten Datum auszuwählen ,
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Im obigen Beispiel erhalte ich alle Werte bis 2013/12/03
. Die Ausgabe ist,
647955 2011/01/04
647946 2012/11/30
Nein, das <br>
ist Teil meiner Datei
In diesem Fall können wir den Befehl wie folgt leicht anpassen.
awk '{print $1, substr($2, 1, length($2)-4)}' filename.txt |
sort -k 2n filename.txt | awk '/2013\/12\/03/ {exit} {print}'
Also entferne ich einfach alle <br>
Tags aus der zweiten Spalte und leite dann den oben genannten Befehl weiter.
Verweise
https://unix.stackexchange.com/a/11323/47538
https://unix.stackexchange.com/a/83069/47538