[Sarlug] serach & replace

" Genix " genix at list.ru
Fri Aug 15 14:09:09 MSD 2003


>  Люди добрые, помогите, кто может... 
> 
>  Есть большое количество файлов, их нужно просмотреть, и заменить "выражение1" 
> на "выражение2". В  "Linux Gazette на русском" недавно был Однострочник 
> месяца на Perl, но разобратся с этим - я, увы, не смог :( . grep это нашел (в 
> количестве - 140шт.), а с автоматической заменой - трудности...
> 
>  В принципе строчку можно просто удалить, если html переживет без 
> <meta name=...  content=... >
> 
>  Сайт отзеркалировался, но некоторые файлы оказались немного битыми (защита, 
> что-ли у них такая?), вручную поправить можно, но материала уж больно 
> много... (знаю, что есть люди, которые уже ждут результата:)

Простой скрипт, который делает замену text1 на text2 в файле, поданом на вход выглядит так:

#!/usr/bin/perl

while (<>) {
 $_ =~ s/text1/text2/;
 print;
}

Вывод идет на stdout.

доделать его для многих файлов не проблема. легче всего на bash'е складывать вывод во временный файл и потом делать mv. Эот в случае если с перлом вааще не охота замрачиваться. Можно и на перле -- если есть желание возможность. В твоем случае (поиск должен быть рекурсивным?) я бы смотрел в сторону
find /dir -type f -name "*.html" -exec replace.pl {}; (сравни с маном мог что-то забыть)

В любом случае пиши -- что-нить придумаем


More information about the Sarlug mailing list