У меня есть текстовый файл (на самом деле 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