Sie können den truncate-Befehl verwenden:
truncate --size=1G test.txt
SIZE kann als Bytes, KB, K, MB, M usw. angegeben werden. Ich nehme an, Sie können die gewünschte Größe von Hand berechnen; Wenn nicht, könnten Sie wahrscheinlich den Befehl stat verwenden, um Informationen über die aktuelle Größe der Datei zu erhalten.
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
öffnet die Datei zum Lesen. Um die Datei jedoch abzuschneiden, müssen Sie sie ändern, sodass ein schreibgeschütztes Dateihandle nicht funktionieren wird. Sie müssen den "Ändern"-Modus verwenden ("+>"
).
Nebenbei erstaunt es mich immer wieder, wenn Leute Systemaufrufe stillschweigend fehlschlagen lassen und dann fragen, was schief gelaufen ist. Ein wesentliches Ein Teil der Diagnose eines Problems besteht darin, sich die ausgegebene Fehlermeldung anzusehen. auch wenn Sie es nicht verstehen, macht es das Leben für diejenigen, die Sie um Hilfe bitten, viel einfacher.
Folgendes wäre etwas hilfreicher gewesen:
perl -we 'open(FILE, "<", "./test.txt") or die "open: $!";
truncate(FILE, 8) or die "truncate: $!";
close(FILE);'
obwohl das zugegebenermaßen nur "ungültiges Argument" gemeldet hätte. Trotzdem sind das nützliche Informationen und könnten Sie zu der Schlussfolgerung geführt haben, dass der Öffnungsmodus falsch war (wie es bei mir der Fall war).
Sie können tail
verwenden um die letzten 1000 Bytes abzuschneiden, Beispiel:
tail -c 1000 Datei> Datei2
das -c gibt die letzten 1000 Bytes der Datei aus, für weitere Optionen:
Männerschwanz
So ersetzen Sie die Originaldatei durch die gerade erstellte Datei:
mv-Datei2 Datei