Gibt es eine Möglichkeit, wie folgt vorzugehen:
cat somefile.txt | sort | uniq > somefile.txt
Das heißt, ich möchte die gesamte Datei auflisten, dann einige Aktionen an ihren Inhalt leiten und das Ergebnis schließlich wieder in die Quelldatei zurücksetzen, um sie vollständig zu überschreiben. Im Moment mache ich das, indem ich die Ausgabe in eine temporäre Datei lege und sie schließlich über das Original verschiebe. Ich möchte es so einfach machen, wie es Linux Piping erlaubt.
Shell ist bash
in Linux und cmd
in Windows, wenn es wichtig ist.
quelle
sponge
ist die allgemeine Antwort, aber dasort
(im Gegensatz zu den meisten Dienstprogrammen) alle Daten gepuffert werden müssen, bevor sie ausgegeben werden (mit Ausnahme von-m
), können Sie dies stattdessen für diesen speziellen Fall tunsort -u -o somefile.txt somefile.txt
.Sie können Vim im Ex-Modus verwenden:
sort u
sortiere einzigartigx
speichern und schließenquelle