Saya memiliki beberapa file berukuran masing-masing> 1 GB. Saya perlu menghapus beberapa byte terakhir dari file. Bagaimana saya bisa melakukannya? Saya lebih suka mengedit file di tempat untuk menghemat ruang disk.
Saya menggunakan HP-UX.
Saya memiliki beberapa file berukuran masing-masing> 1 GB. Saya perlu menghapus beberapa byte terakhir dari file. Bagaimana saya bisa melakukannya? Saya lebih suka mengedit file di tempat untuk menghemat ruang disk.
Saya menggunakan HP-UX.
Jawaban:
Coba gunakan hexedit Saya belum mencobanya di HP-UX tetapi harus bekerja. Ini memungkinkan Anda untuk pindah ke lokasi dalam file dan memotong. Saya cukup yakin bahwa itu tidak membaca seluruh file tetapi hanya mencari lokasi yang sesuai untuk ditampilkan.
Penggunaannya cukup sederhana setelah Anda meluncurkannya, tombol panah memungkinkan Anda untuk bergerak. F1 memberi bantuan. Ctrl-G pindah ke lokasi dalam file (petunjuk: untuk pindah ke akhir gunakan ukuran file dari baris bawah tampilan). Posisikan kursor pada byte pertama yang ingin Anda potong lalu tekan Escape T setelah Anda mengonfirmasi pemotongan akan dilakukan. Ctrl-x keluar.
Potong 2 kilobyte dari akhir file:
truncate -s-2K file
Anda dapat menggunakan dd misalnya:
dd if=yourfile of=outname bs=4k count=thefirstX4kb
Gunakan alat yang memberi Anda akses ke truncate
panggilan sistem. Anda dapat melakukannya hanya dengan alat POSIX. Peringatan, diketik dalam browser; berhati-hatilah karena dd
kesalahan yang bahkan lebih tidak bisa dimaafkan daripada perintah unix yang biasa. 123456 adalah jumlah byte yang harus disimpan.
dd if=/dev/null of=/file/to/truncate seek=1 bs=123456
Versi Perl jauh lebih mudah dibaca:
perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
Anda dapat menggunakan split
atau ed
, awk
atau bahasa pemrograman apa pun.
vim
memiliki batas 4G (bisa salah) tetapi saya tidak berpikir itu melakukannya di tempat (bisa salah).