Sie können den -o
verwenden , --output=FILE
Sortieroption, um dieselbe Eingabe- und Ausgabedatei anzuzeigen:
sort -o file file
Ohne Wiederholung des Dateinamens (mit Bash-Klammernerweiterung)
sort -o file{,}
⚠️ Wichtiger Hinweis: Ein häufiger Fehler besteht darin, zu versuchen, die Ausgabe in dieselbe Eingabedatei umzuleiten (z. B. sort file > file
). Dies funktioniert nicht, da die Shell die Umleitungen durchführt (nicht die sort(1) Programm) und die Eingabedatei (wie auch die Ausgabe) werden gelöscht, kurz bevor sort(1) gegeben wird Programmieren Sie die Möglichkeit, es zu lesen.
Die sort
Der Befehl gibt das Ergebnis der Sortieroperation standardmäßig auf der Standardausgabe aus. Um eine "In-Place"-Sortierung zu erreichen, können Sie Folgendes tun:
sort -o file file
Dadurch wird die Eingabe file
überschrieben mit der sortierten Ausgabe. Die -o
Schalter, der verwendet wird, um eine Ausgabe anzugeben, wird von POSIX definiert und sollte daher in allen Versionen von sort
verfügbar sein :
-o Geben Sie den Namen einer Ausgabedatei an, die anstelle der Standardausgabe verwendet werden soll. Diese Datei kann mit einer der Eingabedateien identisch sein.
Wenn Sie das Pech haben, eine Version von sort
zu haben ohne -o
wechseln (Luis versichert mir, dass es sie gibt), können Sie eine "In-Place"-Bearbeitung auf die übliche Weise erreichen:
sort file > tmp && mv tmp file