Ich habe ein paar Dateien mit einer Größe von jeweils> 1 GB. Ich muss die letzten paar Bytes aus den Dateien entfernen. Wie kann ich es tun? Ich bevorzuge es, die Datei an Ort und Stelle zu bearbeiten, um Speicherplatz zu sparen.
Ich bin auf HP-UX.
Ich habe ein paar Dateien mit einer Größe von jeweils> 1 GB. Ich muss die letzten paar Bytes aus den Dateien entfernen. Wie kann ich es tun? Ich bevorzuge es, die Datei an Ort und Stelle zu bearbeiten, um Speicherplatz zu sparen.
Ich bin auf HP-UX.
Antworten:
Versuchen Sie es mit hexedit. Ich habe es unter HP-UX noch nicht ausprobiert, aber es sollte funktionieren. Hiermit können Sie an einen Speicherort in einer Datei verschieben und abschneiden. Ich bin mir ziemlich sicher, dass es nicht die gesamte Datei einliest, sondern nur nach dem geeigneten Ort für die Anzeige sucht.
Die Bedienung ist ziemlich einfach, sobald Sie sie gestartet haben. Mit den Pfeiltasten können Sie sich fortbewegen. F1 gibt Hilfe. Strg-G bewegt sich an eine Stelle in der Datei (Hinweis: Zum Beenden verwenden Sie die Größe der Datei aus der unteren Zeile der Anzeige). Positionieren Sie den Cursor auf das erste Byte, das Sie abschneiden möchten, und drücken Sie dann Escape T, sobald Sie bestätigt haben, dass das Abschneiden durchgeführt wurde. Strg-x wird beendet.
2 Kilobyte vom Dateiende abschneiden:
truncate -s-2K file
Sie können dd zum Beispiel verwenden:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Verwenden Sie ein Tool, mit dem Sie auf den truncate
Systemaufruf zugreifen können. Dies ist nur mit POSIX-Tools möglich. Warnung, in einen Browser eingegeben; Seien Sie besonders vorsichtig, da dies dd
noch fehlerverzeihender ist als der übliche Unix-Befehl. 123456 ist die Anzahl der zu speichernden Bytes.
dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Eine Perl-Version ist viel lesbarer:
perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
Sie können verwenden split
oder ed
, awk
oder jede Programmiersprache.
vim
hat ein 4G-Limit (könnte falsch sein), aber ich denke nicht, dass es es an Ort und Stelle tut (könnte falsch sein).