Как я могу редактировать большой файл?

У меня есть несколько файлов размером> 1 ГБ каждый. Мне нужно удалить последние несколько байтов из файлов. Как мне это сделать? Я предпочитаю редактировать файл на месте, чтобы сохранить дисковое пространство.

Я нахожусь на HP-UX.

16 голосов | спросил Hemant 26 PM00000010000001531 2010, 13:42:15

5 ответов


9

Попробуйте использовать hexedit Я не пробовал это на HP-UX, но он должен работать. Он позволяет перемещаться в папку в файле и усекать. Я уверен, что он не читает весь файл, а просто ищет подходящее место для отображения.

Использование довольно просто после того, как вы запустили его, клавиши со стрелками позволяют перемещаться. F1 дает помощь. Ctrl-G перемещается к месту в файле (подсказка: чтобы перейти к концу, используйте размер файла из нижней строки дисплея). Поместите курсор на первый байт, который вы хотите усечь, а затем нажмите Escape T, как только вы подтвердите, что усечение будет выполнено. Ctrl-x завершает.

ответил Richm 26 PM00000070000002231 2010, 19:43:22
13

Вырезать 2 килобайта с конца файла:

truncate -s-2K file
ответил Maciej Piechotka 26 PM00000020000003031 2010, 14:53:30
6

Вы можете использовать dd, например:

dd if=yourfile of=outname bs=4k count=thefirstX4kb
ответил maxschlepzig 26 PM00000020000003131 2010, 14:24:31
6

Используйте инструмент, который дает вам доступ к системному вызову truncate. Вы можете сделать это только с помощью инструментов POSIX. Предупреждение, введенное в браузер; особенно осторожны, поскольку dd еще более неумолимо ошибок, чем обычная команда unix. 123456 - количество сохраняемых байтов.

dd if=/dev/null of=/file/to/truncate seek=1 bs=123456

Версия Perl намного читаема:

perl -e 'truncate "$ARGV[0]", 123456 or die $!' /file/to/truncate
ответил Gilles 27 AM00000030000001631 2010, 03:50:16
1

Вы можете использовать split или ed, awk или любой язык программирования.

ответил Mircea Vutcovici 26 PM00000080000003331 2010, 20:19:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132