Я ищу автоматизированное решение, которое может искать, если указанная текстовая строка находится в строке (возможно, не является точным соответствием - только если указанная текстовая строка содержится в строке) в группе текстовых файлов и будет удалите всю строку (или строки), где находится / находится текстовая строка, и замените ее указанной мной текстовой строкой. Я использую Windows 7.

Причина этого: я редактирую файлы AI для старой стратегической игры (Total Annihilation). Файлы AI - это, в основном, текстовые файлы, с разными файлами AI для каждого типа карты. Если бы я хотел сделать одно и то же редактирование во всех AI-файлах, мне пришлось бы редактировать много текстовых файлов.

3 ответа3

2

Вы можете использовать sed в Windows. Одним из источников является GnuWin32. Типичная команда может выглядеть так:

sed '/search pattern/s/^.*$/This is the new text/' file*.txt

который гласит «в каждой строке каждого файла (с именем file [что-то] .txt), содержащего текст" шаблон поиска ", замените всю строку на" Это новый текст ".

Более сложные операции могут выполняться с помощью регулярных выражений и других команд.

2

Notepad++, http://notepad-plus-plus.org/ (также доступен в качестве переносного приложения), будет выполнять поиск и замену файлов в текущем каталоге и во всех подкаталогах с использованием регулярных выражений, в меню поиска перейдите для замены и затем нажмите на вкладку "найти в файлах", выберите "режим поиска с регулярным выражением", тип «^. your_string. $» в поле поиска и "your_new_string" в поле "заменить на".

лучше сначала проверить это.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .