Сегодня мне пришлось удалить первые 1131 байт из смешанного текстового / двоичного файла размером 800 МБ, отфильтрованного дампа подрывной деятельности, который я взламываю для нового хранилища. Какой лучший способ сделать это?
Для начала я попробовал
dd bs=1 skip=1131 if=filtered.dump of=trimmed.dump
но после пропуска это копирует оставшуюся часть файла байт за раз, то есть очень медленно. В итоге я решил, что мне нужно 405 байт, чтобы округлить до трех блоков из 512, которые я мог пропустить
dd if=/dev/zero of=405zeros bs=1 count=405
cat 405zeros filtered.dump | dd bs=512 skip=3 of=trimmed.dump
который завершился довольно быстро, но, должно быть, был более простой / лучший способ? Есть ли другой инструмент, о котором я забыл? Спасибо!
dd
это правильный инструмент для работы - похоже, вы придумали хорошее и элегантное решение вашей проблемы.