У меня есть несколько файлов размером> 1 ГБ каждый. Мне нужно удалить последние несколько байтов из файлов. Как мне это сделать? Я предпочитаю редактировать файл на месте, чтобы сэкономить место на диске.
Я нахожусь на HP-UX.
files
editors
hp-ux
large-files
Hemant
источник
источник
vim
имеет предел 4G (может быть неправильно), но я не думаю, что он делает это на месте (может быть неправильно).Ответы:
Попробуйте использовать hexedit. Я не пробовал его в HP-UX, но он должен работать. Это позволяет вам перейти к месту в файле и обрезать. Я уверен, что он не читает весь файл, а просто ищет подходящее место для отображения.
Использование довольно просто, как только вы запустите его, клавиши со стрелками позволяют перемещаться. F1 дает помощь. Ctrl-G перемещается к месту в файле (подсказка: чтобы перейти к концу, используйте размер файла из нижней строки дисплея). Поместите курсор на первый байт, который вы хотите обрезать, и затем нажмите Escape T, как только вы подтвердите, что усечение будет выполнено. Ctrl-x выходит.
источник
Вырезать 2 килобайта из конца файла:
источник
Вы можете использовать дд например:
источник
Используйте инструмент, который дает вам доступ к
truncate
системному вызову. Вы можете сделать это только с помощью инструментов POSIX. Предупреждение, набранное в браузере; будьте особенно осторожны, так какdd
ошибки еще более беспощадны, чем обычная команда unix. 123456 - это количество байтов для хранения.Версия Perl гораздо более читабельна:
источник
Вы можете использовать
split
илиed
,awk
или любой язык программирования.источник