LINUX.ORG.RU

Замена последовательности символов на другую в бинарных файлах

 , , , ,


0

1

Решение: Замена последовательности символов на другую в бинарных файлах (комментарий)

Братья и сёстры линуксоиды, подсобите советом!

Чем в большом множестве файлов заменить одну последовательность символов на другую? Есть около 1.7kk файлов (в сумме 43 GiB, размер самих файлов очень разный), как текстовых, так и совсем бинарных. Во многих из них встречается строка «ABcd123», надо заменить на «CDef123». Или вроде того. Важно, что длина строк одинаковая и размеры файлов должны остаться такими же, как были до правок, чтобы там никакие бинарные структуры не «поплыли», вне зависимости от того, что это за файл, хоть исполняемый. Поскольку файлов много, то желательно это сделать прямо на месте, без временного копирования. И хорошо бы ещё удостовериться, что всё прошло хорошо, ничего не изменилось кроме указанной последовательности.

Кроме того, есть ещё второй смежный вопрос. Чем ту же последовательность заменить в target'ах символьных ссылок?

Суть в том, что эта последовательность - имя директории, где всё это лежит и она много где «осела» и в ссылках и в самих данных.

Думается, sed для такого не очень подходит.

Благодарствую!

★★★★★

Последнее исправление: ls-h (всего исправлений: 1)
Ответ на: комментарий от salozar

я подозреваю, что весь этот тред - это вопрос «не хочу пилить велосипед, хочу готовое решение». И, учитывая что запрошен не какой-то космический корабль, а «in-place binary sed», лично я вот не могу сказать что правильный ответ - пилить свой велосипед

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

ну возможно велосипед можно запилить без особой боли. если строка размером до 16 байт например.

salozar
()
Ответ на: комментарий от Pinkbyte

Тут прогу писать быстрее чем искать готовое. Только автор решил не сам искать а у других спросить.

firkax ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.