Войти

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


willss
06-01-2015, 15:22
Здравствуйте!
Помогите пожайлуста сделать множественную замену слов в большом количестве файлов html.

К примеру в папке C:\Documents and Settings\admin\Рабочий стол\ER2\es-1 лежит 500 html файлов,
нужно чтобы батник находил и менял слова:
no=yes
hi=bye
today=morrow
и так далее.
Сам не могу разобраться((
Заранее очень благодарен за помощь.

sov44
07-12-2015, 20:29
Посоветуйте утилиту (батником вряд-ли получится) по замене в некоторых строках значения checked="1" на checked="0" в html файле.

Foreigner
07-12-2015, 21:11
sov44, С помощью sed (http://gnuwin32.sourceforge.net/packages/sed.htm)

@echo off
setlocal

pushd "C:\Documents and Settings\admin\Рабочий стол\ER2\es-1"

for %%i in (*.html) do (

sed -e "s/no/yes/g" ^
-e "s/bye/hellow/g" ^
-e "s/today/morrow/g" "%%i" > "%%~ni.tmp"

)

for %%i in (*.tmp) do move "%%i" "%%~ni.html"
popd

Iska
07-12-2015, 21:17
в некоторых строках »
Чем будет определять отличие «некоторых» строк от не «некоторых»?

sov44
07-12-2015, 21:37
Foreigner, благодарю! sed успешно заменил одно значение на другое, но по всему html. А может утилита менять параметр по условию? Например заменить параметр checked="1" на checked="0" только для id="sovetnikEnabled" и id="aviaBarEnabled" ?

upd решено
sed -e "/sovetnikEnabled/s/1/0/g" ^
-e "/aviaBarEnabled/s/1/0/g" options.html > options-1.html

мануал (http://ant0.ru/comment/54)

Foreigner
07-12-2015, 22:19
sov44, Попробуйте так:

@echo off
setlocal

sed -re "s:(id=\"aviaBarEnabled\" checked=)\"1\":\1\"0\":g" ^
-e "s:(id=\"sovetnikEnabled\" checked=)\"1\":\1\"0\":g" options.html > options.tmp




© OSzone.net 2001-2012