Sortieren einer WIRKLICH GROSSEN, durch Trennzeichen getrennten Textdatei in UNIX / VMS


2

Ich werde a sortieren WIRKLICH GROSSE begrenzte Textdatei Sagen wir 250 MB (oder eine Reihe von Dateien mit mehr oder weniger als 250 MB). Es hat 37 Felder und ich muss es nach 5 Feldern sortieren, zum Beispiel nach dem 1., 4., 5., 6. und 7. Feld. Habe ich unter Unix / VMS eine gute Möglichkeit, dies SCHNELL zu tun? Ich kann COBOL-Programm schreiben.
Jetzt versuche ich, sie mit dem folgenden Befehl zu sortieren, aber es läuft schon lange und wird gerade nicht beendet.

Vielen Dank.

Der Befehl, den ich verwendet habe: Zeitsortierung -t ',' -o sortiert.txt +0 -1 +4 -5 +5 -6 +6 -7 +22 -23 * .DAT_gprscdr_ftpd


2
Stellen Sie diese Frage bei stackoverflow.com
Amir Rezaei

1
Schauen Sie sich diese SO-Frage an stackoverflow.com/questions/930044/… Möglicherweise können Sie das Skript dort verwenden.
KeesDijk

1
Was stimmt nicht mit dem von Ihnen bereitgestellten Shell-Skript? Die Unix-Sorte ist schnell.
S.Lott

Antworten:


3

Vielleicht sollte sich diese Frage wirklich auf einer anderen SE-Site befinden, aber hier ist meine Ansicht zu diesem Thema.

1) Ist nicht die grundlegende Sorte, in der Sie bereitgestellt haben     deine frage schnell genug? Wie schnell sollte es gehen?     Sein? Mein 2 Jahre alter Desktop sortiert     270 MB Apache-Zugriffsprotokolldateien in     21 Sekunden.

2) Wenn das nicht schnell genug ist, können Sie versuchen, zuerst jede Datei einzeln zu sortieren und sie dann mit "sort -m" zusammenzuführen.

3) Wenn Sie nicht schnell genug sind und mehr als eine CPU / einen Kern haben, parallelisieren Sie den Prozess mit GNU Parallel

4) Wenn Sie immer noch nicht schnell genug sind und mehr Maschinen zur Verfügung haben, parallelisieren Sie den Sortiervorgang auf mehreren Maschinen mit GNU Parallel


0

Sie können die Daten in die MySQL-Datenbank laden (LOAD-Befehl) und tun, was Sie wollen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.