SW для замены строки в Windows

SW для замены строки в Windows

У меня есть текстовый файл (на самом деле XML), который я хочу иметь возможность изменять с помощью командной строки. Другими словами, в рамках пакета Windows я хочу найти строку (в данном случае @@@@, которая использует символ, не присутствующий больше нигде в файле), а затем заменить ее чем-то простым, например, датой '8/18/11'.

Есть ли какой-нибудь «grep», «perl» или другой способ быстро заменить строку? Опять же, это должно быть сделано через командную строку, поскольку я хочу автоматизировать процесс.

Кстати, у меня на ПК установлен Active State PERL.

решение1

Чтобы заменить все вхождения findthisслова replacetoв файле, example.txtвыполните:

perl -pi -e 's/findthis/replaceto/g' example.txt 

решение2

Нет ничего неправильного в ответах, которые у вас уже есть, но просто чтобы добавить к вариантам, я укажу, что если у вас Windows 7, у вас также установлен powershell. Или, если на то пошло, его можно установить на XP/Vista, если вы так пожелаете. Затем:

$foo = gc C:\Path\To\File.txt; $foo | %{$_.replace('@@@@', '8/1/11')} | Out-File C:\Path\To\File.txt

решение3

Кажется, вы знаете grep. Вы можете использовать ту же утилиту, которая естьдоступно для окон. Вам не нужно устанавливать его, а просто поместить его в путь (или в ту же папку, где выполняется пакетный файл). Если вы его используете, не забудьте скачать "зависимости", а также двоичные файлы (или скачать исполняемый файл установки, если вам нравятся такие вещи).

В качестве альтернативы вы можете использовать язык VBS (язык сценариев для Windows XP) и создать скрипт для замены строки в файле (подробности смотрите по этой ссылке) и запуск скрипта из командной строки с помощьюcscript

Связанный контент