Заменить слова на другие в 1000 файлов .html

vchikvin

У меня есть 1000 файлов(*.html) и мне в них надо заменить слово test на test2 как это сделать?

nats

Открой нотепадом или текспадом. ctrl+H заменить

4223080

больше всех мне понравилась для этой цели прога InfoRapid Search and Replace: http://www.inforapid.com/html/srdownload.htm
фриварная, может работать без инсталляции (хотя на сайте находится тока инсталлятор)

4223080

Открой нотепадом или текспадом. ctrl+H заменить

... и так 1000 раз

yolki

perl

SergZ

переименуй топик и восплоьзуйся dreamweaver'ом

maggi14

воспользуйся вижуалстудией

Andbar

Far+Search&Replace plugin
заодно поддержка регекспов и много чего.
Учитывая то, что Фар - файловый менеджер, это поможет удобно отобрать файлы для поиска/замены.

Troyn09

наверняка есть такой плагин и для тоталкомандера
а фар в слифф

nas1234

тут подсказывают Ultraedit

stream



У меня есть 1000 файлов(*.html) и мне в них надо заменить слово test на test2 как это сделать?
 
можно заплатить мне 100 рублей и расшарить свои файлы
ну или програмку могу кинуть

altair

Есть специальная прога для этого.
HTML Batch Editor Professional
У меня есть, если что.
Мне очень помогла в свое время.

Ivan8209

В топку!
Есть sed.
У GNU sed есть -i.
---
...Я работаю антинаучным аферистом...

yolki

CorrectFiles.pl - делает замены в указанных файлах

sub beginOp{
$NOp=0;
$oldtime=$curtime=time;
print $_[0]." ";
}
sub endOp{
$curtime=time;
print $NOp;
print " operations - ";
print $curtime-$oldtime." seconds\n";
}
sub totaltime{
print "------------------------------------------\ntotal time: ";
print $curtime-$begtime." seconds\n";
}
sub inittime{
$curtime=$begtime=time;
}
if(!($cat=$ARGV[0]{
print STDERR "Catalog isn't specified! Should I start from the currient? ";
$c=<>;
if($c=~m/[y|1]/i){$cat=".";}
else {die;}
}
local $/;
inittime;
beginOp("Reading files tree");
$NOp=@FilesList=ReadFiles($cat);
endOp;
foreach $file (@FilesList)
{
if($file!~m/\.htm/i){next;} # <<-- маску заменить
open(FH, "< $file") or next;
$_=<FH>;
close FH;
print "$file\n";
#===========================------ REPLACES ------==============================
beginOp;
$NOp+=s%СТАРЫЙ ТЕКСТ%НОВЫЙ ТЕКСТ%igs;
endOp;
#=======================----- END OF REPLACES -------===========================
open(FH, "> $file");
print FH;
close FH;
}
totaltime;
sub ReadFiles
{
local @FilesList;
my @files;
opendir(DIRHANDLE,$_[0]) or return;
@files=readdir(DIRHANDLE);
closedir(DIRHANDLE);
if( !defined(@files) )
{ return 0; }
foreach $filename(@files){
if( $filename=~m/\w/ && opendir(TDIR,$_[0]."/".$filename) ){
# printf $_[0]."/".$filename." - Catalog\n";
closedir(TDIR);
@FilesList=(@FilesList, ReadFiles($_[0]."/".$filename;
}
if( $filename=~m/\w/ ){
# print $_[0]."/".$filename."\n";
push(@FilesList,$_[0]."/".$filename);
}
}
return @FilesList;
}

Ivan8209

find /path/to/files -iname \*.html -exec sed -ibak -e 's/СТАРОЕ/НОВОЕ/g' {} \;
---
...Я работаю антинаучным аферистом...

yolki

молодец, возьми пирожок.
приведённый код на перле у меня валяется уже года два. не я его писал - но он работает

Ivan8209

За такой код программиста надо расстрелять.
Я код написал сразу, не особо задумываясь.
Работает, короче и понятнее.
---
"Мы диалектику учили не по Гегелю.
Бряцанием боёв она врывалась в стих..."

Troyn09

оба варианта в слив, Фокс код писать и юзать не будет

Ivan8209

Ему уже не надо писать, за него всё написали.
От него требуется зайти в корневой каталог и написать:

find . -iname \*.html -exec sed -ibak -e 's/СТАРОЕ/НОВОЕ/g' {} \;

Всё.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Troyn09

ты еще забал маленькую деталь - ему перед этим придется ставить *nix

stream

кривая команда



D:\MyDoc\html>find . -iname \*.html -exec sed -ibak -e 's/a/
bbbbb/g' {} \;
File not found - \*.html

Ivan8209

Тебе надо сначала дать команду sh
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Troyn09



"sh" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Ivan8209


$ uname -mrs
CYGWIN_NT-5.1 1.5.18(0.132/4/2) i686
$ find ~ -name \*.html | wc -l
XXXX

---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Ivan8209

У тебя стоит голая винда.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Troyn09

ну естественно у меня стоит голая винда
да и у большинства народа тоже самое
и ставить цигвин, ради разовой задачи врятли кто будет

Ivan8209

Можешь поставить SFU для такого случая.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Troyn09

без понятия что это

Ivan8209

> ради разовой задачи
Можешь редактировать все 1000 файлов руками, если так хочешь.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Troyn09

лично мне это вобще сейчас не нужно, я чиста пофлудить пришел
а вобще если бы потребовалось, то я бы воспользовался прогой, про которую писали несколько постов выше

disna

переименовывай тред
сейчас холивар начнется!

sevast82

переименовывай тред
сейчас холивар начнется!
И не говори!
Черт, как трудно удержаться от однострочного shell-скрипта с вызовом sed'а. Надо крепиться...

Troyn09

Нет, потому что данный человек вообще-то пьёт что попало, просто сейчас ему захотелось кофе.[/quote]
не надо ганать отсебятину, есть конкретная задача, ничем другим человек заниматься\учится не будет и не должен


Или в каждом конкретном случае спросить "как мне приготовить то-то", а со временем и понимание принципов придёт.
понимание принципов, не обязывает использовать методы непревычные для человека
Оставить комментарий
Имя или ник:
Комментарий: