Текстовая замена в сжатых файлах

Это кажется на установку GRUB в главной загрузочной записи основного жесткого диска. Поскольку жесткие диски только имеют один MBR, только один загрузчик может находиться в нем за один раз. Вы также, кажется, сказали всем Вашим операционным системам устанавливать загрузчик.

Надлежащий способ обработать это (принятие Вас хотят использовать MBR) состоит в том, чтобы мешать GRUB установить себя на MBR в любых операционных системах, от которых Вы не хотите устанавливать GRUB. Самый тривиальный способ сделать это должно, вероятно, удалить пакет личинки.

Иначе должен был бы установить Ваш загрузчик на разделе и загрузиться оттуда, но это не так распространено.

2
09.02.2014, 13:20
2 ответа

Если Вы хотите изменить текст в файлах в zip-файле, то Вы не имеете никакого выбора, но извлекаете их, редактируете их и повторно добавляете их.

Если Вам нужен в сделанный на большей части содержания .zip (не количеством файлов, но общей сжатой суммой), легче извлечь все к новому каталогу, отредактировать соответствующие файлы и архивировать все. Это, например, случай при редактировании весь .html файлы в a .epub и отъезд метаданных то же, поскольку переархивирование метаданных занимает время по сравнению с остальной частью данных.

2
27.01.2020, 21:51
  • 1
    Спасибо, но я не понял Вашего примера: если единственный путь состоит в том, чтобы извлечь все, редактирование и сжаться снова, то, под чем Вы подразумеваете, "это легче"? Легче, чем какой? –  Daniel Hershcovich 09.02.2014, 13:41
  • 2
    Можно также просто извлечь имена файлов, которые имеют текст для изменения в них. Но если те файлы справедливы, например, 1% размера общего количества .zip, повторно сжимая остальных препятствует. В этом случае просто извлеките их файл и добавьте их снова. –  Timo 09.02.2014, 14:00
  • 3
    я вижу. Таким образом, предложение в первом абзаце Вашего ответа состоит в том, чтобы управлять только соответствующими файлами, не извлечь все файлы и повторно добавить все к новой zip. –  Daniel Hershcovich 09.02.2014, 16:17
  • 4
    @DanielHershcovich Точно, который был моим предложением. Первое могло бы быть быстрее, потому что Вы не повторно сжимаете все, но медленнее, потому что необходимо распаковать, по крайней мере, файлы соответствия дважды (однажды выполнение zgrep и затем извлечение файлов соответствия). Таким образом, это действительно зависит в целом .zip, что более эффективно. (И если это - что-то, что Вы только делаете однажды, который, вероятно, не важен вообще) –  Timo 09.02.2014, 21:51
  • 5
    Вы не должны извлечь и восстановить zip. Можно использовать zip предохранителя для управления содержанием zip как каталогом. –  Gilles 'SO- stop being evil' 10.02.2014, 03:45

Можно работать над монтированием zip-файл к каталогу, после которого можно исследовать и изменить его, как будто это был каталог.

Zip предохранителя установки (доступный через диспетчер пакетов во всех хороших дистрибутивах).

mount_point=$(TMPDIR=$PWD mktemp -d)
# Iterate over the .zip files in the current directory
for z in *.zip; do
  fuse-zip "$z" "$mount_point"
  # At this point, the zip contents are available through the mount point
  find "$mount_point" -type f -exec sed -i 's/a/b/g' {} +
  fusermount -u "$mount_point"
done
rmdir "$mount_point"

(Примечание: Я принимаю GNU sed синтаксис в этом примере.)

6
27.01.2020, 21:51

Теги

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