Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Найти и заменить текст в файле. (http://forum.oszone.net/showthread.php?t=224514)

Yurich75 05-01-2012 20:55 1829190

Найти и заменить текст в файле.
 
Уважаемые эксперты, прошу помощи.
Требуется написать батник выполняющий следующее:
Необходимо в текстовом файле test1.txt, состоящим из нескольких строк найти текст "zamena" и заменить его на заранее определенную переменную, а результат сохранить в файле test2.txt.
Заранее благодарю.

Foreigner 06-01-2012 10:28 1829449

Yurich75,
Т.е. "zamena" это не обязательно отдельное слово?
С помощью sed:
Код:

@echo off
setlocal

set "replace=some text"
sed "s/zamena/%replace%/g" test1.txt 1>test2.txt


Yurich75 07-01-2012 19:09 1830357

Foreigner, благодарю, еще до того как запостил сюда, попытался найти ответ и естественно наткнулся на sed.
Хотел конечно обойтись без сторонних утилит, редакторов и пр. Закинул сюда вопрос, потом еще порыл инет, и вот что нашел:
вот тут лежит утиль gsar: http://home.online.no/~tjaberg/
Собственно автор сразу дал описание, что делает эта утиль. Собственно мне и нужен такой реплэйсер, т.к. старый - 16-ти разрядный
не работает под win64.
У меня получилось решить мою задачку вот так:

gsar -s"zamena" -r%1 -f test1.txt test2.txt

Текст zamena из первого файла заменяется параметром, который получает cmd (bat) и результат сохраняется в другой файл.
Все работает. Единственное - параметр надо указывать в кавычках (как и заменяемый текст), но работает и так, если указываем без кавычек.
Сейчас вот думаю, как к параметру добавить кавычки, т.к. изначально он без кавычек. Хоть и так все работает,
но в описалове к утили - сказано надо отдать в кавычках.


Время: 11:22.

Время: 11:22.
© OSzone.net 2001-