Ich habe eine Datei, foo.txt
die die folgenden Zeilen enthält:
a
b
c
Ich möchte einen einfachen Befehl, der den Inhalt von foo.txt
sein:
a
b
Ich habe eine Datei, foo.txt
die die folgenden Zeilen enthält:
a
b
c
Ich möchte einen einfachen Befehl, der den Inhalt von foo.txt
sein:
a
b
Hier ist eine Lösung mit Schwamm (aus dem moreutils Paket):
head -n -1 foo.txt | sponge foo.txt
Zusammenfassung der Lösungen:
Wenn Sie eine schnelle Lösung für große Dateien wünschen, verwenden Sie die effizientes Heck o dd Ansatz.
Wenn Sie etwas einfach zu erweitern/zu optimieren und portabel sein wollen, verwenden Sie die umleiten und verschieben Ansatz.
Wenn Sie etwas wollen, das sich leicht erweitern/verändern lässt, die Datei nicht zu groß ist, Portabilität (d. h. abhängig von moreutils
Paket) ist kein Thema, et Wenn Sie ein Fan von eckigen Hosen sind, sollten Sie die Schwammmethode in Betracht ziehen.
Ein angenehmer Vorteil des Sponge-Ansatzes im Vergleich zum "Umleiten und Verschieben" ist, dass die Dateiberechtigungen erhalten bleiben.
Sponge verbraucht im Vergleich zum "Redirect and Move"-Ansatz erheblich mehr RAM. Dies bringt zwar einen kleinen Geschwindigkeitsgewinn (nur etwa 20 %), aber wenn Sie an Geschwindigkeit interessiert sind, sind die Ansätze "efficient tail" und dd die richtige Wahl.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.