сценарий оболочки / утилита заменяет 2 байта unicode в двоичном файле

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

7
24.10.2012, 01:14
2 ответа

Это возможно с жемчугом,

Файл примера:

echo -e "\xe8\x90" > a

И теперь если Вы делаете:

perl -pne 's/\xe8\x90/\x41\x42/g' < a > output

Вы добираетесь 0x41 0x42, который является AB

3
27.01.2020, 20:19

Альтернатива вызову жемчуга должна использовать sed

sed -i.bckp -e "s/\xc3\xb9/\xd7\xa0/" file

Используя потокового редактора (sed) у меня есть он делающий оперативное выполнение (значение, что это изменит файл напрямую), и я предоставил .bckp как аргумент в пользу-i так, чтобы старый файл был сохранен. Затем я выполняю выражение подкачки, которое ищет Ваши шестнадцатеричные байты с regex и выгружает его с байтами, которые Вы хотите использовать. И вызов в файл является большим файлом, с которым Вы хотите сделать это.

Если Вы хотите оперативную замену, не создавая резервную копию его (например, файл находится в repo), то можно просто удалить .bckp после-i, и это не создаст новых файлов.

2
27.01.2020, 20:19

Теги

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