Иногда возникает необходимость заменить определенный кусок текста в нескольких документах: например, сменить пути установки в серии конфигурационных файлов или быстро изменить оформление в серии каких-нибудь договоров и т. д. Конечно, можно открыть каждый файл в редакторе, произвести поиск и замену штатными средствами; но если этих файлов больше десятка, то ручная работа становится весьма нудной, а если их больше полусотни, то это просто трата времени. Для решения таких задач есть специальные программы-автоматизаторы, три из которых - RQ Search and Replace, MultiReplace и @Text Replacer - будут рассмотрены в этом обзоре. Каждая из них имеет разные возможности и, в общем-то, разную область применения.
@Text Replacer
Программа @Text Replacer от компании Инфортекнолоджи – наиболее простая из всех трех. Стоимость полной версии - 118 рублей. Незарегистрированная версия позволяет проводить поиск и замену только в текстовых файлах (не обязательно txt – это может быть любой файл, данные в котором написаны открытым текстом: ini, html и т. д.) и не поддерживает режим командной строки. Тем не менее для большинства случаев такая функциональность вполне подойдет.
На вкладке "Текст и расположение" надо указать путь к файлу или файлам (допускаются стандартные подстановочные символы * и ?), что заменять и на что заменять. Флажок "Просмотреть вложенные папки" позволяет произвести замену не только в указанной папке, но и во всех ее подпапках. На вкладке "Дополнительно" можно указать игнорируемые символы (полезно, если текст разбит символами конца строки, например тексты с lib.ru, или между словами стоит больше одного пробела), установить классическую опцию "Учитывать регистр" и ввести путь к файлу, где будет сохранен отчет о переименовании.
После выставления всех опций и нажатия кнопок "Заменить" или "Найти" программа выдаст список обработанных файлов внизу основного окна. Форму выдачи результатов можно изменить в меню "Вид" - любой вариант из стандартных "Список", "Таблица" и т. д. К сожалению, какой бы пункт вы ни выбрали – программа выдаст только перечень файлов, а не искомые места в них. Впрочем, вооружившись любым просмотрщиком текста (например, встроенным в Total Commander), в них легко можно отыскать нужные строки.
Замечание: хотя @Text Replacer не поддерживает нестандартные методы замены, наподобие "Вставить Б между А и В", это не значит, что обязательно нужна другая программа. Того же эффекта можно добиться, заменив строчку "А В" на "А Б В"; то же самое касается удаления выбранного текста и вставки до и после указанного отрывка. Выделение таких действий в отдельную функцию оправдано при больших кусках для правки, тогда это экономит время.
Multi Replace
Программа Multi Replace предоставлена компанией Alphynsoftware. Основные поля в программе такие же, как и в предыдущей, – путь поиска, окно исходного текста и текста для замены, но эта утилита заметно функциональней @Text Replacer. Существует две версии программы, незначительно отличающиеся друг от друга, – Lite ($19,95) и Pro ($29,95). Пробная версия полнофункциональна, но ограничена 15 днями.
Среди преимуществ можно отметить более мощную работу с подстановочными символами – разрешается задача диапазона символов через [a-z] и отмена служебных символов при помощи обратного слеша – "". (То есть комбинацией "*" можно задать поиск в тексте именно символа *, а не любого символа.)
Очень удобен флаг "Помещать результаты в новую директорию", особенно в случае, когда нужно произвести несколько пакетных замен подряд на каком-нибудь бланке. Также можно выбрать типы файлов, которые будут (или напротив – не будут) учитываться при поиске или замене. Что приятно, некоторые из наиболее часто используемых расширений уже указаны в выпадающем меню. Используя кнопки "+" и "-", можно добавлять или удалять их (только в Pro).
Флаг "Многострочный текст" аналогичен флагу "Игнорировать конец строки" в @Text Replacer. Имейте в виду, что в режиме многострочного текста нельзя применить отмену спецсимвола при помощи знака ""!
Групповая замена позволяет задать выполнение нескольких замен одновременно. При наличии большого количества файлов это поможет сэкономить время, равно как и флаг "Экспресс-замена" (выполнение всех замен только с одним запросом).
Среди функций также стоит отметить "Авторезервирование", которое создает копии изменяемых программой файлов. Выполняя автозамену для важных документов, особенно такую, которую нельзя совершить в обратную сторону, будет нелишним поставить этот флажок. Копии будут храниться в папке Backup в директории программы.
Часто случается, что нужно произвести замену несколько сложнее, чем А на Б. Например, нужно вставить в текст отчество между именем и фамилией или просто удалить некоторые куски текста. В таком случае справа от опций можно выбрать нестандартный способ замены.
Все параметры программы можно использовать и для дальнейшей работы с автозаменой, используя иконки "Сохранить параметры замены" и "Загрузить параметры замены" (Только в Pro).
RQ Search&Replace
RQ Search&Replace от MiraSoftware - самая мощная из всех трех программ. Кроме стандартного алгоритма поиска и замены файлов содержит в себе множество дополнительных функций. Демонстрационная версия позволяет обрабатывать или только один файл, или несколько файлов, но не больше 8 килобайт каждый. Выбор можно сделать непосредственно во время работы программы из меню "Помощь". Стоимость полнофункциональной версии – $19.
Основной принцип работы – задание различных правил обработки текста в специальной таблице, содержимое текущего ее ряда отображается в окнах Find what и Replace with. Если программа развернута на полный экран, то внизу появляется детальный лог, содержащий все совершенные программой операции.
Столбец, озаглавленный "!!!" обозначает активность/неактивность правила, столбец "Операция" - тип действия (замена, удаление, вставка до или после), а столбец "Объект" - тип данных, который будет обрабатываться. Таковых 6:
- блок - любой массив данных;
- строка - массив данных до разрыва строки;
- слово целиком - массив данных, отделенный пробелами;
- блок, заключенный в..., - все символы между А и Б;
- MSWord - вызывает отдельное диалоговое окно, в котором можно настроить замену, используя все функции одноименного окна Word, включая спецсимволы;
- HTML-тег - позволяет удалить теги (вместе с парными закрывающими, что удобно) или модифицировать их: например, заменить аргумент или перевести написание в другой регистр.
Меню "Таблица" дублирует все вышеупомянутые функции, позволяя установить их сразу для нескольких строк.
Из меню "Проект" можно сохранять и загружать параметры поиска и замены, как и в Multi Replace.
В меню "Кодировка" можно указать кодировку, которая будет принята по умолчанию при обработке. Программа умеет работать с Win1251, koi8, DOS-кодировками, а также с UTF8, отдельно вынесенном в меню "Опции".
В следующем пункте – "Просматривать в виде" - можно выбрать способ интерпретации текста в окне предпросмотра. Программа понимает не только обычный plain text, но и RTF, и HTML. (Удобно для редактирования архива веб-страниц, где строки разбиты тегами.)
Меню "Операции" содержит несколько дополнительных алгоритмов, на которых стоит остановиться поподробнее.
Создать индекс-файл. Работает правильно, только если подсветить в окне выбора файлов .html страницы. Создает файл со ссылками на каждую из страниц. Файл получается абсолютно без всякого оформления, поэтому сгодится или в качестве основы для нормального индекса, или же для внутреннего использования при каталогизации сохраненных веб-страниц.
Text-HTML. Функция, превращающая текст в HTML-страницу. Несмотря на то что мусорного кода операция эта практически не добавляет, для русскоязычного пользователя она абсолютно бесполезна: получившийся из кириллического текста файл с символами вида "’e7" не смогла прочитать ни одна программа, включая саму Search&Replace. С файлами на европейских языках все ОК.
HTML-Text. Производит обратное действие (в этом направлении кириллица обрабатывается нормально), но зачем это нужно – не очень понятно, ведь того же самого можно добиться, просто-напросто выделив текст в любом браузере.
Удалить файлы нулевого размера. Название функции говорит само за себя. Удаляет все пустые файлы из выбранной папки. Можно запускать в конце работы, чтобы удалить файлы, чье содержимое уже было очищено.
Преобразовать HTML-Unicode в ASCII. Функция позволяет исправить в HTML-файлах некорректно отображенные сервером национальные буквы и спецсимволы. У меня она почему-то не сработала, хотя сам файл обрабатывался верно.
Заменить символы 0-31. Символы с кодами 0-31 в коде ASCII считаются управляющими, и иногда может потребоваться очистить от них текст (например, убрать лишние переводы строки), для чего и предназначена эта операция.
В меню "Настройки" можно поменять цветовую гамму утилиты, а также указать случаи, в которых программа будет запрашивать подтверждения действий.
Меню "Копии" и "История папок" дают пользователю гибкие возможности по управлению резервными копиями измененных файлов без необходимости пользоваться файл-менеджером.
Итоговое сравнение
@Text Replacer
Плюсы: низкая стоимость, простота в освоении.
Минусы: ограниченное удобство использования, низкая функциональность.
MultiReplace
Плюсы: удобный и понятный интерфейс, богатый набор фунцкий.
Минусы: из всех представленных программ – самая дорогая, даже Lite.
RQ Search & Replace
Плюсы: огромный набор функций, дополнительные операции, детальный лог всех действий, хорошая цена.
Минусы: несколько громоздкий интерфейс, простые действия занимают больше времени, чем в других программах.
Выводы
Если вам нужна простая программа, чтобы исправить 2-3 строчки в несложных текстовых документах, – @Text Replacer подойдет идеально, если же ваш выбор – сложные и разветвленные алгоритмы замены в разных файлах, то RQ Search & Replace или же Multi Replace.
![Посмотреть стоимость и условия приобретения](http://www.ixbt.com/pic/icon_buy.gif)
![Посмотреть стоимость и условия приобретения](http://www.ixbt.com/pic/icon_buy.gif)
![Посмотреть стоимость и условия приобретения](http://www.ixbt.com/pic/icon_buy.gif)