Muss ich eine zweite Datei erzeugen, um eine Datei zu sortieren?

8

Ich möchte eine Reihe von Dateien sortieren. Ich kann

tun %Vor%

aber brauche ich diese zweite Datei?

(Ich habe natürlich sort file.txt > file.txt versucht, aber dann habe ich nur eine leere Datei gefunden.)

    
Nagel 02.02.2012, 17:49
quelle

5 Antworten

12

Versuchen Sie:

%Vor%

Siehe Ссылка

%Vor%     
Andrew Cooper 02.02.2012, 17:54
quelle
1

Die Philosophie klassischer Unix-Tools wie sort beinhaltet, dass Sie mit ihnen eine Pipe erstellen können. Jedes kleine Tool liest von STDIN und schreibt nach STDOUT . Auf diese Weise kann das nächste kleine Werkzeug in der Rohrleitung die Ausgabe der ersten als Eingabe lesen und darauf reagieren.

Also würde ich sagen, dass dies ein Fehler und kein Feature ist.

Lesen Sie auch über P ipes, Umleitung und Filter in dem sehr netten Buch von ESR.

    
user647772 02.02.2012 17:53
quelle
1

Da Sie in dieselbe Datei zurückschreiben, haben Sie immer das Problem, dass die Redirect die Ausgabedatei öffnet, bevor die Sortierung durchgeführt wird und das Original geladen wird. Also ja, Sie müssen eine separate Datei verwenden.

Nun, nachdem wir das gesagt haben, gibt es Möglichkeiten, die ganze Datei zuerst in den Pipe-Stream zu puffern, aber normalerweise würden Sie das nicht tun wollen, obwohl es möglich ist, wenn Sie etwas schreiben, um es zu tun. Aber Sie würden spezielle Werkzeuge am Anfang und am Ende einfügen, um die Pufferung durchzuführen. Bash öffnet die Ausgabedatei jedoch zu früh, wenn Sie die > redirect verwenden.

    
Wes Hardaker 02.02.2012 17:55
quelle
0

Ja, Sie brauchen eine zweite Datei! Der Befehl

%Vor%

hätte bash, um die Umleitung von stout vor der Ausführung von sort einzurichten. Dies ist ein bestimmter Weg, um Ihre Eingabedatei zu überlisten.

Wenn Sie viele Dateien sortieren möchten, versuchen Sie Folgendes:

%Vor%     
Mithrandir 02.02.2012 17:53
quelle
0

Wenn Sie sich damit beschäftigen, Datensätze fester Länge aus einer einzigen Datei zu sortieren, kann der Sortieralgorithmus Datensätze innerhalb der Datei austauschen. Es stehen ein paar verfügbare Algorithmen zur Verfügung. Ihre Auswahl hängt von der Größe der zufälligen Eigenschaften der Datei ab. Im Allgemeinen tendiert quicksort dazu, die geringste Anzahl von Datensätzen zu tauschen, und ist normalerweise die Sortierung, die im Vergleich zu anderen Sortieralgorithmen zuerst abgeschlossen wird.

    
Leslie Satenstein 23.02.2016 03:02
quelle

Tags und Links