* [Sarlug] serach & replace
@ 2003-08-15 9:26 sinaps
2003-08-15 9:26 ` sinaps
` (4 more replies)
0 siblings, 5 replies; 18+ messages in thread
From: sinaps @ 2003-08-15 9:26 UTC (permalink / raw)
To: Sar-LUG
Люди добрые, помогите, кто может...
Есть большое количество файлов, их нужно просмотреть, и заменить "выражение1"
на "выражение2". В "Linux Gazette на русском" недавно был Однострочник
месяца на Perl, но разобратся с этим - я, увы, не смог :( . grep это нашел (в
количестве - 140шт.), а с автоматической заменой - трудности...
В принципе строчку можно просто удалить, если html переживет без
<meta name=... content=... >
Сайт отзеркалировался, но некоторые файлы оказались немного битыми (защита,
что-ли у них такая?), вручную поправить можно, но материала уж больно
много... (знаю, что есть люди, которые уже ждут результата:)
--
Best regards, http://saratov.lug.ru
sinaps mailto:sin.a@freeline.ru
sinaps слушает: Аквариум - Укравший Дождь
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Sarlug] serach & replace
2003-08-15 9:26 [Sarlug] serach & replace sinaps
@ 2003-08-15 9:26 ` sinaps
2003-08-15 9:58 ` Roman Bogorodskiy
` (3 subsequent siblings)
4 siblings, 0 replies; 18+ messages in thread
From: sinaps @ 2003-08-15 9:26 UTC (permalink / raw)
To: Sar-LUG
Люди добрые, помогите, кто может...
Есть большое количество файлов, их нужно просмотреть, и заменить "выражение1"
на "выражение2". В "Linux Gazette на русском" недавно был Однострочник
месяца на Perl, но разобратся с этим - я, увы, не смог :( . grep это нашел (в
количестве - 140шт.), а с автоматической заменой - трудности...
В принципе строчку можно просто удалить, если html переживет без
<meta name=... content=... >
Сайт отзеркалировался, но некоторые файлы оказались немного битыми (защита,
что-ли у них такая?), вручную поправить можно, но материала уж больно
много... (знаю, что есть люди, которые уже ждут результата:)
--
Best regards, http://saratov.lug.ru
sinaps mailto:sin.a@freeline.ru
sinaps слушает: Аквариум - Укравший Дождь
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 9:26 [Sarlug] serach & replace sinaps
2003-08-15 9:26 ` sinaps
@ 2003-08-15 9:58 ` Roman Bogorodskiy
2003-08-15 9:59 ` Roman Bogorodskiy
2003-08-15 10:11 ` Re[2]: " "Genix"
2003-08-15 10:10 ` Nickolay Parfenov
` (2 subsequent siblings)
4 siblings, 2 replies; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 9:58 UTC (permalink / raw)
To: sin.a, Saratov Linux User Group Maillist
sinaps wrote:
> Есть большое количество файлов, их нужно просмотреть, и заменить
> "выражение1"
> на "выражение2". В "Linux Gazette на русском" недавно был
> Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :(
> . grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> трудности...
sed -e s/выражение1/выражение2/g *
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 9:58 ` Roman Bogorodskiy
@ 2003-08-15 9:59 ` Roman Bogorodskiy
2003-08-15 10:11 ` Re[2]: " "Genix"
1 sibling, 0 replies; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 9:59 UTC (permalink / raw)
To: sin.a, Saratov Linux User Group Maillist
sinaps wrote:
> Есть большое количество файлов, их нужно просмотреть, и заменить
> "выражение1"
> на "выражение2". В "Linux Gazette на русском" недавно был
> Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :(
> . grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> трудности...
sed -e s/выражение1/выражение2/g *
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 10:13 ` "Genix"
@ 2003-08-15 10:09 ` "Genix"
0 siblings, 0 replies; 18+ messages in thread
From: "Genix" @ 2003-08-15 10:09 UTC (permalink / raw)
To: sin.a, "Saratov Linux User Group Maillist"
> Люди добрые, помогите, кто может...
>
> Есть большое количество файлов, их нужно просмотреть, и заменить "выражение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 {}; (сравни с маном мог что-то забыть)
В любом случае пиши -- что-нить придумаем
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 9:26 [Sarlug] serach & replace sinaps
2003-08-15 9:26 ` sinaps
2003-08-15 9:58 ` Roman Bogorodskiy
@ 2003-08-15 10:10 ` Nickolay Parfenov
2003-08-15 10:21 ` Nickolay Parfenov
2003-08-15 10:52 ` sinaps
2003-08-15 10:13 ` "Genix"
2003-08-15 19:31 ` Paul P Komkoff Jr
4 siblings, 2 replies; 18+ messages in thread
From: Nickolay Parfenov @ 2003-08-15 10:10 UTC (permalink / raw)
To: sin.a, Saratov Linux User Group Maillist
Hi, sinaps !
On Fri, Aug 15, 2003 at 01:26:34PM +0400, you wrote:
> Есть большое количество файлов, их нужно просмотреть, и заменить
> "выражение1" на "выражение2". В "Linux Gazette на русском" недавно был
> Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :( .
> grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> трудности...
> В принципе строчку можно просто удалить, если html переживет без
> <meta name=... content=... >
В таких случаях вместо газет лучше читать классику типа Керниган, Пайк
"UNIX - универсальная среда программирования" (а лучше учить наизусть ;) и
man'ы. То же самое и с perl'ом, разбираться с ним не изучив grep, sed,
awk, ... значит просто тратить время. Ну а замену можно сделать, например,
из командной строки:
for f in *.html;do \
sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done
Для рекурсивной замены вместо for используй find с параметром -exec.
SY, Николай
--
Nickolay N. Parfenov (8452) 73-55-10 73-55-12 EastSoft Ltd.
E-mail: nik (at) eastsoft.ru FidoNet: 2:5053/44.1 UIN: 14602777
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re[2]: [Sarlug] serach & replace
2003-08-15 9:58 ` Roman Bogorodskiy
2003-08-15 9:59 ` Roman Bogorodskiy
@ 2003-08-15 10:11 ` "Genix"
2003-08-15 10:11 ` "Genix"
2003-08-15 10:19 ` Roman Bogorodskiy
1 sibling, 2 replies; 18+ messages in thread
From: "Genix" @ 2003-08-15 10:11 UTC (permalink / raw)
To: "Saratov Linux User Group Maillist"
> > Есть большое количество файлов, их нужно просмотреть, и заменить
> > "выражение1"
> > на "выражение2". В "Linux Gazette на русском" недавно был
> > Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :(
> > . grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> > трудности...
>
> sed -e s/выражение1/выражение2/g *
А сам пробовал? :)
Hint:
На stdout получится каша из нескольких фалов, склеенных в один
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re[2]: [Sarlug] serach & replace
2003-08-15 10:11 ` Re[2]: " "Genix"
@ 2003-08-15 10:11 ` "Genix"
2003-08-15 10:19 ` Roman Bogorodskiy
1 sibling, 0 replies; 18+ messages in thread
From: "Genix" @ 2003-08-15 10:11 UTC (permalink / raw)
To: "Saratov Linux User Group Maillist"
> > Есть большое количество файлов, их нужно просмотреть, и заменить
> > "выражение1"
> > на "выражение2". В "Linux Gazette на русском" недавно был
> > Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :(
> > . grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> > трудности...
>
> sed -e s/выражение1/выражение2/g *
А сам пробовал? :)
Hint:
На stdout получится каша из нескольких фалов, склеенных в один
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 9:26 [Sarlug] serach & replace sinaps
` (2 preceding siblings ...)
2003-08-15 10:10 ` Nickolay Parfenov
@ 2003-08-15 10:13 ` "Genix"
2003-08-15 10:09 ` "Genix"
2003-08-15 19:31 ` Paul P Komkoff Jr
4 siblings, 1 reply; 18+ messages in thread
From: "Genix" @ 2003-08-15 10:13 UTC (permalink / raw)
To: sin.a, "Saratov Linux User Group Maillist"
> Люди добрые, помогите, кто может...
>
> Есть большое количество файлов, их нужно просмотреть, и заменить "выражение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 {}; (сравни с маном мог что-то забыть)
В любом случае пиши -- что-нить придумаем
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Re[2]: [Sarlug] serach & replace
2003-08-15 10:11 ` Re[2]: " "Genix"
2003-08-15 10:11 ` "Genix"
@ 2003-08-15 10:19 ` Roman Bogorodskiy
2003-08-15 10:20 ` Roman Bogorodskiy
2003-08-15 13:34 ` Roman Bogorodskiy
1 sibling, 2 replies; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 10:19 UTC (permalink / raw)
To: Genix, Saratov Linux User Group Maillist
Genix wrote:
> > sed -e s/выражение1/выражение2/g *
>
> А сам пробовал? :)
sed -e s/выражение1/выражение2/g -i .bak *
вот так работает вроде :)
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Re[2]: [Sarlug] serach & replace
2003-08-15 10:19 ` Roman Bogorodskiy
@ 2003-08-15 10:20 ` Roman Bogorodskiy
2003-08-15 13:34 ` Roman Bogorodskiy
1 sibling, 0 replies; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 10:20 UTC (permalink / raw)
To: Genix, Saratov Linux User Group Maillist
Genix wrote:
> > sed -e s/выражение1/выражение2/g *
>
> А сам пробовал? :)
sed -e s/выражение1/выражение2/g -i .bak *
вот так работает вроде :)
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 10:10 ` Nickolay Parfenov
@ 2003-08-15 10:21 ` Nickolay Parfenov
2003-08-15 10:52 ` sinaps
1 sibling, 0 replies; 18+ messages in thread
From: Nickolay Parfenov @ 2003-08-15 10:21 UTC (permalink / raw)
To: sin.a, Saratov Linux User Group Maillist
Hi, sinaps !
On Fri, Aug 15, 2003 at 01:26:34PM +0400, you wrote:
> Есть большое количество файлов, их нужно просмотреть, и заменить
> "выражение1" на "выражение2". В "Linux Gazette на русском" недавно был
> Однострочник месяца на Perl, но разобратся с этим - я, увы, не смог :( .
> grep это нашел (в количестве - 140шт.), а с автоматической заменой -
> трудности...
> В принципе строчку можно просто удалить, если html переживет без
> <meta name=... content=... >
В таких случаях вместо газет лучше читать классику типа Керниган, Пайк
"UNIX - универсальная среда программирования" (а лучше учить наизусть ;) и
man'ы. То же самое и с perl'ом, разбираться с ним не изучив grep, sed,
awk, ... значит просто тратить время. Ну а замену можно сделать, например,
из командной строки:
for f in *.html;do \
sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done
Для рекурсивной замены вместо for используй find с параметром -exec.
SY, Николай
--
Nickolay N. Parfenov (8452) 73-55-10 73-55-12 EastSoft Ltd.
E-mail: nik (at) eastsoft.ru FidoNet: 2:5053/44.1 UIN: 14602777
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 10:10 ` Nickolay Parfenov
2003-08-15 10:21 ` Nickolay Parfenov
@ 2003-08-15 10:52 ` sinaps
2003-08-15 10:52 ` sinaps
1 sibling, 1 reply; 18+ messages in thread
From: sinaps @ 2003-08-15 10:52 UTC (permalink / raw)
To: Saratov Linux User Group Maillist
Пятница 15 Август 2003 14:10, Nickolay Parfenov написал:
NP > В таких случаях вместо газет лучше читать классику типа Керниган, Пайк
NP > "UNIX - универсальная среда программирования" (а лучше учить наизусть ;)
Дык, тупые юзверы мы... :) (разве только - как мантру:)
NP > из командной строки:
NP > for f in *.html;do \
NP > sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done
NP >
NP > Для рекурсивной замены вместо for используй find с параметром -exec.
NP >
Sed'ом я даже как-то раз, однажды пользовался, но что-бы ТАК... !!! :)))
(рекурсию в этом примере - не пробовал)
PS: В следующие выходные будет готов диск "Аквариум том-1 1973-1982" :)
PPS: ogg хорош еще и тем, что пишет теги в уникоде, и читаться они будут
везде.
--
Best regards, http://saratov.lug.ru
sinaps mailto:sin.a@freeline.ru
sinaps слушает: Аквариум - Укравший Дождь
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 10:52 ` sinaps
@ 2003-08-15 10:52 ` sinaps
0 siblings, 0 replies; 18+ messages in thread
From: sinaps @ 2003-08-15 10:52 UTC (permalink / raw)
To: Saratov Linux User Group Maillist
Пятница 15 Август 2003 14:10, Nickolay Parfenov написал:
NP > В таких случаях вместо газет лучше читать классику типа Керниган, Пайк
NP > "UNIX - универсальная среда программирования" (а лучше учить наизусть ;)
Дык, тупые юзверы мы... :) (разве только - как мантру:)
NP > из командной строки:
NP > for f in *.html;do \
NP > sed 's/выр1/выр2/g'<$f >$f.new && mv $f $f.bak && mv $f.new $f;done
NP >
NP > Для рекурсивной замены вместо for используй find с параметром -exec.
NP >
Sed'ом я даже как-то раз, однажды пользовался, но что-бы ТАК... !!! :)))
(рекурсию в этом примере - не пробовал)
PS: В следующие выходные будет готов диск "Аквариум том-1 1973-1982" :)
PPS: ogg хорош еще и тем, что пишет теги в уникоде, и читаться они будут
везде.
--
Best regards, http://saratov.lug.ru
sinaps mailto:sin.a@freeline.ru
sinaps слушает: Аквариум - Укравший Дождь
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Re[2]: [Sarlug] serach & replace
2003-08-15 10:19 ` Roman Bogorodskiy
2003-08-15 10:20 ` Roman Bogorodskiy
@ 2003-08-15 13:34 ` Roman Bogorodskiy
2003-08-15 13:34 ` Roman Bogorodskiy
1 sibling, 1 reply; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 13:34 UTC (permalink / raw)
To: Saratov Linux User Group Maillist
I wrote:
> > > sed -e s/выражение1/выражение2/g *
> >
> > А сам пробовал? :)
>
> sed -e s/выражение1/выражение2/g -i .bak *
> вот так работает вроде :)
Извеняюсь, что дал не универсальный совет для всех систем:
man 1 sed
---cut 8<---
The -i option is a non-standard FreeBSD extension and may not be avail-
able on other operating systems.
---cut 8<---
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Re[2]: [Sarlug] serach & replace
2003-08-15 13:34 ` Roman Bogorodskiy
@ 2003-08-15 13:34 ` Roman Bogorodskiy
0 siblings, 0 replies; 18+ messages in thread
From: Roman Bogorodskiy @ 2003-08-15 13:34 UTC (permalink / raw)
To: Saratov Linux User Group Maillist
I wrote:
> > > sed -e s/выражение1/выражение2/g *
> >
> > А сам пробовал? :)
>
> sed -e s/выражение1/выражение2/g -i .bak *
> вот так работает вроде :)
Извеняюсь, что дал не универсальный совет для всех систем:
man 1 sed
---cut 8<---
The -i option is a non-standard FreeBSD extension and may not be avail-
able on other operating systems.
---cut 8<---
-Roman Bogorodskiy [Novel]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 9:26 [Sarlug] serach & replace sinaps
` (3 preceding siblings ...)
2003-08-15 10:13 ` "Genix"
@ 2003-08-15 19:31 ` Paul P Komkoff Jr
2003-08-15 19:31 ` Paul P Komkoff Jr
4 siblings, 1 reply; 18+ messages in thread
From: Paul P Komkoff Jr @ 2003-08-15 19:31 UTC (permalink / raw)
To: Sar-LUG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Replying to sinaps:
> месяца на Perl, но разобратся с этим - я, увы, не смог :( . grep это нашел (в
> количестве - 140шт.), а с автоматической заменой - трудности...
Мариванна, мне бы ваши проблемы (с)
- --
Paul P 'Stingray' Komkoff Jr // http://stingr.net/key <- my pgp key
This message represents the official view of the voices in my head
-----BEGIN PGP SIGNATURE-----
iD8DBQE/PTT6yMW8naS07KQRAjIsAJ9pV0ltYSWR+aRSHFZeC6cKJ40gcwCglVB+
+60HG7Zs5v0c/jOMm8SPtgQ=
=/Bqd
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sarlug] serach & replace
2003-08-15 19:31 ` Paul P Komkoff Jr
@ 2003-08-15 19:31 ` Paul P Komkoff Jr
0 siblings, 0 replies; 18+ messages in thread
From: Paul P Komkoff Jr @ 2003-08-15 19:31 UTC (permalink / raw)
To: Sar-LUG
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Replying to sinaps:
> месяца на Perl, но разобратся с этим - я, увы, не смог :( . grep это нашел (в
> количестве - 140шт.), а с автоматической заменой - трудности...
Мариванна, мне бы ваши проблемы (с)
- --
Paul P 'Stingray' Komkoff Jr // http://stingr.net/key <- my pgp key
This message represents the official view of the voices in my head
-----BEGIN PGP SIGNATURE-----
iD8DBQE/PTT6yMW8naS07KQRAjIsAJ9pV0ltYSWR+aRSHFZeC6cKJ40gcwCglVB+
+60HG7Zs5v0c/jOMm8SPtgQ=
=/Bqd
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2003-08-15 19:31 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-15 9:26 [Sarlug] serach & replace sinaps
2003-08-15 9:26 ` sinaps
2003-08-15 9:58 ` Roman Bogorodskiy
2003-08-15 9:59 ` Roman Bogorodskiy
2003-08-15 10:11 ` Re[2]: " "Genix"
2003-08-15 10:11 ` "Genix"
2003-08-15 10:19 ` Roman Bogorodskiy
2003-08-15 10:20 ` Roman Bogorodskiy
2003-08-15 13:34 ` Roman Bogorodskiy
2003-08-15 13:34 ` Roman Bogorodskiy
2003-08-15 10:10 ` Nickolay Parfenov
2003-08-15 10:21 ` Nickolay Parfenov
2003-08-15 10:52 ` sinaps
2003-08-15 10:52 ` sinaps
2003-08-15 10:13 ` "Genix"
2003-08-15 10:09 ` "Genix"
2003-08-15 19:31 ` Paul P Komkoff Jr
2003-08-15 19:31 ` Paul P Komkoff Jr
Saratov Linux User Group
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sarlug/0 sarlug/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sarlug sarlug/ http://lore.altlinux.org/sarlug \
sarlug@lists.lug.ru sarlug@lug.ru
public-inbox-index sarlug
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sarlug
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git