2

У меня есть текстовый файл (на самом деле XML), который я хочу изменить с помощью командной строки. Другими словами, как часть пакета Windows, я хочу найти строку (в данном случае @@@@, которая использует символ, которого нет в другом месте файла), а затем заменить его чем-то простым, например дата «18.08.11».

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

Между прочим, у меня на компьютере есть Active State PERL.

3 ответа3

5

Чтобы заменить все вхождения 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
0

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

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

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