Войти

Показать полную графическую версию : Найти и заменить текст в файле.


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

Foreigner
06-01-2012, 10:28
Yurich75,
Т.е. "zamena" это не обязательно отдельное слово?
С помощью sed (http://gnuwin32.sourceforge.net/packages/sed.htm):

@echo off
setlocal

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

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

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

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




© OSzone.net 2001-2012