[Решено] Пакетная правка бинарных файлов.

Всем привет. Друзья, есть вопрос.
Имею пачку бинарных файлов над которыми нужно выполнить одну рутинную операцию.
В бинарниках кроме прочего указаны названия файлов, так вот, нужно заменить расширения этих файлов на другие.
Т.е. было ".txt" стало ".doc". Точка вначале нужна, чтоб гарантировано отсечь случайные совпадения. Количество заменяемых символов одинаковое, поэтому структура файла не нарушится и со сдвигами можно не заморачиваться.
По-одному все прекрасно правится в hex-редакторах, но это долго и муторно.
У кого какие мысли?
sed не работает?
https://www.linux.org.ru/forum/general/11084913
Lupus pilum mutat, non mentem.
jim945
sed не работает?
непонятно в каком формате вводить данные. В 16-ричном точно не меняет.
с двоичными тоже не прокатывает.
как есть
.txt
Lupus pilum mutat, non mentem.
Конечно, можно написать и на С (там есть специальные функции для поиска и вставки в hex формате), можно написать и на bash, но, по моему, проще выполнить преобразование одной командой, для каждого файла в отдельности, используя совет jim945, как есть ....
На выбор или perl или bash sed ....(описка)
perl -i -pe 's/.txt/.doc/' /path/to/file
sed -i -e 's/.txt/.doc/' /path/to/file
По времени ничего не выигрывается ..... но командой удобнее и проще.
UPD ... при тренировке лучше сравнивать бинарники, используя vbindiff (консольная утилита для сравнения/правки бинарников)
vbindiff /path/to/file1 /path/to/file2 ................ отличия будут выделены красным цветом

PS..... уточнения
1. из sed "e" можно убрать (пишу по привычке ...)
2. если есть желание, то файлы можно вписать все сразу , через пробел, типа
perl -i -pe 's/.txt/.doc/' /path/to/file1 /path/to/file2 /path/to/file3
Ошибки не исчезают с опытом - они просто умнеют
Все, всем спасибо за подсказки. Кому понадобиться -
  sed -i 's/.txt/.doc/g' /путь/к/файлам/*.расширение


vasek
sed -i -e 's/.txt/.doc/' /path/to/file
без g, будет заменено только первое попавшееся вхождение.


vasek
2. если есть желание, то файлы можно вписать все сразу , через пробел, типа
можно еще проще - по маске.
За vbindiff - отдельное спасибо. Сейчас до-обновляюсь (надо же хотя бы раз за пару месяцев) и пощупаю, что это зверь такой. ))
 
Зарегистрироваться или войдите чтобы оставить сообщение.