Re: search and replace

2007-05-15 Пенетрантность Artem Chuprina
Иван Лох -> debian-russian@lists.debian.org  @ Tue, 15 May 2007 18:31:49 +0400:

 >>  NN> вот что смог сделать
 >>  NN> sed -i  -e '/RECEIVE/,/VAULT/s/.*/TEST_/g' index.html
 >> 
 >>  NN> вроде сработал только вот заменяет он теперь в таком кол-во сколько 
 >> строчек
 >>  NN> были заменены
 >>  NN> т.е. если между
 >>  NN> RECEIVE и  VAULT были 15 строчек то и ТEST_ появиться в тексте 15 раз 
 >> :-(

 ИЛ> s не единственная команда sed

 ИЛ> #!/bin/sed -e
 ИЛ> /perl/,/sed/ c\
 ИЛ> Замена

 >> Слушай, ну лениво же.  Когда мне такое надо в простом случае, я беру
 >> perl, прошу его зачитать в память сразу весь файл, и мне хорошо.  Когда
 >> в сложном, впрочем, все равно беру perl.  Только уже не зачитываю весь
 >> файл в память, бо не лезет.  Он и по одной строке может не полезть...

 ИЛ> Последнее время у меня спаморезалка начала резать [EMAIL PROTECTED] Или 
база
 ИЛ> отравилась...

Судя по тому, что она у тебя отрезала, а что нет - может, оно и к лучшему?..

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

$lotr = $hobbit;  # Просто копируем "Хоббита"
$lotr =~ s/Bilbo/Frodo/g; #   и легко пишем продолжение.
из Camel Book


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-15 Пенетрантность Иван Лох
On Tue, May 15, 2007 at 06:19:48PM +0400, Artem Chuprina wrote:
> Nikolay Nikolaev -> Nikolay Nikolaev  @ Mon, 14 May 2007 16:55:45 +0300:
>  NN> вот что смог сделать
>  NN> sed -i  -e '/RECEIVE/,/VAULT/s/.*/TEST_/g' index.html
> 
>  NN> вроде сработал только вот заменяет он теперь в таком кол-во сколько 
> строчек
>  NN> были заменены
>  NN> т.е. если между
>  NN> RECEIVE и  VAULT были 15 строчек то и ТEST_ появиться в тексте 15 раз :-(

s не единственная команда sed

#!/bin/sed -e
/perl/,/sed/ c\
Замена

> Слушай, ну лениво же.  Когда мне такое надо в простом случае, я беру
> perl, прошу его зачитать в память сразу весь файл, и мне хорошо.  Когда
> в сложном, впрочем, все равно беру perl.  Только уже не зачитываю весь
> файл в память, бо не лезет.  Он и по одной строке может не полезть...

Последнее время у меня спаморезалка начала резать [EMAIL PROTECTED] Или база 
отравилась...


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-15 Пенетрантность Artem Chuprina
Nikolay Nikolaev -> Nikolay Nikolaev  @ Mon, 14 May 2007 16:55:45 +0300:

   NN>  а подскажите точно так же БЛОК не удалить а заменить на другой
   NN> БЛОК (не строчку). как можно sed'ом сделать
 
  Точно так же, только в замену вписать не пустое место, а нужный блок.
 
   NN> и заодно уж подскажите есть ли на русском документация по sed'у где
   NN> бы это все найти? что б каждый раз не трести 
 
 >>
 >>

 NN> Народ я все так же бьюсь над проблемой

 NN> вот что смог сделать
 NN> sed -i  -e '/RECEIVE/,/VAULT/s/.*/TEST_/g' index.html

 NN> вроде сработал только вот заменяет он теперь в таком кол-во сколько строчек
 NN> были заменены
 NN> т.е. если между
 NN> RECEIVE и  VAULT были 15 строчек то и ТEST_ появиться в тексте 15 раз :-(

Слушай, ну лениво же.  Когда мне такое надо в простом случае, я беру
perl, прошу его зачитать в память сразу весь файл, и мне хорошо.  Когда
в сложном, впрочем, все равно беру perl.  Только уже не зачитываю весь
файл в память, бо не лезет.  Он и по одной строке может не полезть...

А на sed - ну да, некоторые тут представляют, как.  Но когда тебе
изложили эти представления, ты ими воспользоваться не смог.  А тратить
свое время, на отладку готового решения, чтобы ты на халяву его получил
- можно, конечно, но неужели мы не найдем себе более интересного занятия?

Задолбал, короче.

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

НИИ требуются:
1. Кто бы мог подумать.
Кнышев.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-14 Пенетрантность Nikolay Nikolaev

Nikolay Nikolaev wrote:

[EMAIL PROTECTED] wrote:



Nikolay Nikolaev -> debian-russian@lists.debian.org  @ Mon, 07 May 
2007 07:39:11 +0300:


 NN>  а подскажите точно так же БЛОК не удалить а заменить на 
другой

 NN> БЛОК (не строчку). как можно sed'ом сделать

Точно так же, только в замену вписать не пустое место, а нужный блок.

 NN> и заодно уж подскажите есть ли на русском документация по sed'у 
где

 NN> бы это все найти? что б каждый раз не трести 






Народ я все так же бьюсь над проблемой

вот что смог сделать
sed -i  -e '/RECEIVE/,/VAULT/s/.*/TEST_/g' index.html

вроде сработал только вот заменяет он теперь в таком кол-во сколько 
строчек были заменены

т.е. если между
RECEIVE и  VAULT были 15 строчек то и ТEST_ появиться в тексте 15 раз :-(



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-13 Пенетрантность Nikolay Nikolaev

[EMAIL PROTECTED] wrote:



Nikolay Nikolaev -> debian-russian@lists.debian.org  @ Mon, 07 May 
2007 07:39:11 +0300:


 NN>  а подскажите точно так же БЛОК не удалить а заменить на другой
 NN> БЛОК (не строчку). как можно sed'ом сделать

Точно так же, только в замену вписать не пустое место, а нужный блок.

 NN> и заодно уж подскажите есть ли на русском документация по sed'у где
 NN> бы это все найти? что б каждый раз не трести 



http://www.google.com/linux?hl=ru&q=sed&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru 


http://www.opennet.ru/search.shtml?exclude=index%7C%2Fman.shtml&words=sed
http://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=list&forum=vsluhforumID9 



и отключи уведомление о доставке



почитал ссылки много интересного нащел
но вот нигде небыло примера
как заменить блок на блок
не вхождения в строке...
а блок (несколько строк) на блок
Народ подскажите замучаося уже с ним


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-06 Пенетрантность rm-f




Nikolay Nikolaev -> debian-russian@lists.debian.org  @ Mon, 07 May 2007 
07:39:11 +0300:

 NN>  а подскажите точно так же БЛОК не удалить а заменить на другой
 NN> БЛОК (не строчку). как можно sed'ом сделать

Точно так же, только в замену вписать не пустое место, а нужный блок.

 NN> и заодно уж подскажите есть ли на русском документация по sed'у где
 NN> бы это все найти? что б каждый раз не трести 



http://www.google.com/linux?hl=ru&q=sed&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru
http://www.opennet.ru/search.shtml?exclude=index%7C%2Fman.shtml&words=sed
http://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=list&forum=vsluhforumID9

и отключи уведомление о доставке


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-06 Пенетрантность Artem Chuprina
Nikolay Nikolaev -> debian-russian@lists.debian.org  @ Mon, 07 May 2007 
07:39:11 +0300:

 NN>  а подскажите точно так же БЛОК не удалить а заменить на другой
 NN> БЛОК (не строчку). как можно sed'ом сделать

Точно так же, только в замену вписать не пустое место, а нужный блок.

 NN> и заодно уж подскажите есть ли на русском документация по sed'у где
 NN> бы это все найти? что б каждый раз не трести 

Так а толку?  С русским у тебя тоже проблемы...  Нет, сходу перевод "Sed
& Awk" мне найти не удалось.  Пробуйте читать оригинал.

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

Попрошу благородного дона не обобщать с утра пораньше! (С)энта


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-06 Пенетрантность Nikolay Nikolaev

Victor Wagner wrote:

On 2007.05.02 at 20:21:07 +0300, Nikolay Nikolaev wrote:

  
 
  
Народ подскажите а можно ли sed'ом удалить блок текста? а не только в 



Можно.

  

одной строке вроде как g должна спасти



Не должна. g  вызывает замену всех вхождений шаблона в данной строке. 
(а не только первого, по умолчанию).


  

но почему не срабатывает
мне надо удалить в файле все от слова (вклячая их) RES до VAULT



sed -i  -e '/RES/,/VAULT/d' com.html

удалит  все СТРОКИ, начиная с содерщащей RES до содержащей VAULT.
Если же нужно оставить то, что было в строке до  RES и после VAULT,
то нужно играться с командой N, как было в предыдущем письме.

Но в любом случае sed умеет не только команду s, но ещё и много много
других.  




  
 а подскажите точно так же БЛОК не удалить а заменить на другой БЛОК 
(не строчку). как можно sed'ом сделать
и заодно уж подскажите есть ли на русском документация по sed'у где бы 
это все найти? что б каждый раз не трести 

Спасибо.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-02 Пенетрантность Victor Wagner
On 2007.05.02 at 20:21:07 +0300, Nikolay Nikolaev wrote:

> >  
> Народ подскажите а можно ли sed'ом удалить блок текста? а не только в 

Можно.

> одной строке вроде как g должна спасти

Не должна. g  вызывает замену всех вхождений шаблона в данной строке. 
(а не только первого, по умолчанию).

> но почему не срабатывает
> мне надо удалить в файле все от слова (вклячая их) RES до VAULT

sed -i  -e '/RES/,/VAULT/d' com.html

удалит  все СТРОКИ, начиная с содерщащей RES до содержащей VAULT.
Если же нужно оставить то, что было в строке до  RES и после VAULT,
то нужно играться с командой N, как было в предыдущем письме.

Но в любом случае sed умеет не только команду s, но ещё и много много
других.  



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-02 Пенетрантность Timur S. Sattarov




Иван Лох wrote:

  On Wed, May 02, 2007 at 08:21:07PM +0300, Nikolay Nikolaev wrote:
  
  
Народ подскажите а можно ли sed'ом удалить 
блок текста? а не только в одной строке 
вроде как g должна спасти

  
  

  

Я могу ошибаться с sed, но в perl опция /g давала возможность
обрабатывать все вхождения в строке
если была нужна обработка многострочного блока - добавлялась опция /m

--
Саттаров Тимур




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-02 Пенетрантность Иван Лох
On Wed, May 02, 2007 at 08:21:07PM +0300, Nikolay Nikolaev wrote:
> Народ подскажите а можно ли sed'ом удалить 
> блок текста? а не только в одной строке 
> вроде как g должна спасти

http://www.grymoire.com/Unix/Sed.html#uh-47

The next example would delete everything between "ONE" and "TWO:"

#!/bin/sh
sed '
/ONE/ {
# append a line
N
# search for TWO on the second line
/\n.*TWO/ {
# found it - now edit making one line
s/ONE.*\n.*TWO/ONE TWO/
}
}' file



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-05-02 Пенетрантность Nikolay Nikolaev

Vasily Ivanov wrote:

День добрый.

On 27 April 2007 17:15, Nikolay Nikolaev wrote:
  

Добрый день, подскажите чем быстрее и главное как
обработать 10 мелких файлов на предмет нахождения в них "искомая
строчка"
и замены на "то что нужно"
Я знаю как это сделать в виме, но мне нужно это сделать с большим
кол-вом файлов.. :(
в одном каталоге рекурсивно
Спасибо



NAME
 rpl - replace strings in files

SYNOPSIS
 rpl [-LhiwbqvsRepfdt] [-xSUFFIX]  
 

DESCRIPTION
 Basic usage is to specify two strings and one or more filenames or direc-
 tories on the command line.  The first string is the string to replace,
 and the second string is the replacement string.

ЗЫ: после прочтения треда видно, что это не совсем то, что требуется в данном 
случае, но может на будущее пригодится =)


  
Народ подскажите а можно ли sed'ом удалить блок текста? а не только в 
одной строке вроде как g должна спасти

но почему не срабатывает
мне надо удалить в файле все от слова (вклячая их) RES до VAULT
пробую вот так,
sed -i 's/RES(.*?)VAULT//g' com.html
хм.. однако не срабатывает


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-28 Пенетрантность Vasily Ivanov
День добрый.

On 27 April 2007 17:15, Nikolay Nikolaev wrote:
> Добрый день, подскажите чем быстрее и главное как
> обработать 10 мелких файлов на предмет нахождения в них "искомая
> строчка"
> и замены на "то что нужно"
> Я знаю как это сделать в виме, но мне нужно это сделать с большим
> кол-вом файлов.. :(
> в одном каталоге рекурсивно
> Спасибо

NAME
 rpl - replace strings in files

SYNOPSIS
 rpl [-LhiwbqvsRepfdt] [-xSUFFIX]  
 

DESCRIPTION
 Basic usage is to specify two strings and one or more filenames or direc-
 tories on the command line.  The first string is the string to replace,
 and the second string is the replacement string.

ЗЫ: после прочтения треда видно, что это не совсем то, что требуется в данном 
случае, но может на будущее пригодится =)

-- 
Best regards,
 Vasily Ivanov  mailto:[EMAIL PROTECTED]


pgpLqUyhMZpTk.pgp
Description: PGP signature


Re: search and replace

2007-04-27 Пенетрантность Nikolay Nikolaev

Sergei Stolyarov wrote:

On Friday 27 April 2007 18:52, Nikolay Nikolaev wrote:
  

Roman Busyguin wrote:


27.04.2007, в 18:21, Nikolay Nikolaev писал(а):
  

да я уже увидел :-)
теперь бы понять как выдрать из путь только название файла 


basename должен помочь

--
Roman Busyguin

Believe in what you do and do what you believe in
  

решил вот так сделать, только он почему-то не меняет текст а просто на
stdout выгоняет содержимое файла
пробовал и с ключом -е.. то же самое.. :(

for file in `find . -iname *.html`; do  name=`basename ${file} .html`;
sed "s/.*<\/title>/${name}/g" ${file}; done



У sed тоже есть флаг -i, если его не указывать, то всё действительно в stdout 
полезет. 

  

Спасибо


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Иван Лох
On Fri, Apr 27, 2007 at 01:39:42PM +0300, Doroshok Stanislav wrote:
> > > файлов.. :(
> >
> > man sed или man ed
> >
> > > в одном каталоге рекурсивно
> >
> > man find
> perl -pi -e  's/SEARCH/FOUND/g'  

10 запускать perl? Если уж на нем, то как-то так:


#!/usr/bin/perl -w

use File::Find;
find(\&scanner,$ARGV[0]);

sub scanner{ 
my $file=$_; return if -d $file;
open I,"<$file"; open O,">$file.bak";
while(){
s/xxx/$file/ if /xxx/;
print O;
}
close I;
unlink $file;
link $file.bak" $file;
unlink $file.bak;
}


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Sergei Stolyarov
On Friday 27 April 2007 18:52, Nikolay Nikolaev wrote:
> Roman Busyguin wrote:
> > 27.04.2007, в 18:21, Nikolay Nikolaev писал(а):
> >> да я уже увидел :-)
> >> теперь бы понять как выдрать из путь только название файла 
> >
> > basename должен помочь
> >
> > --
> > Roman Busyguin
> >
> > Believe in what you do and do what you believe in
>
> решил вот так сделать, только он почему-то не меняет текст а просто на
> stdout выгоняет содержимое файла
> пробовал и с ключом -е.. то же самое.. :(
>
> for file in `find . -iname *.html`; do  name=`basename ${file} .html`;
> sed "s/.*<\/title>/${name}/g" ${file}; done

У sed тоже есть флаг -i, если его не указывать, то всё действительно в stdout 
полезет. 

-- 
Sergei Stolyarov


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность rm-f



Nikolay Nikolaev пишет:

Roman Busyguin wrote:

27.04.2007, в 18:21, Nikolay Nikolaev писал(а):


да я уже увидел :-)
теперь бы понять как выдрать из путь только название файла 


basename должен помочь

--
Roman Busyguin

Believe in what you do and do what you believe in





решил вот так сделать, только он почему-то не меняет текст а просто на 
stdout выгоняет содержимое файла

пробовал и с ключом -е.. то же самое.. :(



for file in `find . -iname *.html`; do
  name=`basename ${file} .html`
  sed "s/.*<\/title>/${name}/g" ${file}
done

man sed
параметр --in-place


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Nikolay Nikolaev

Roman Busyguin wrote:

27.04.2007, в 18:21, Nikolay Nikolaev писал(а):


да я уже увидел :-)
теперь бы понять как выдрать из путь только название файла 


basename должен помочь

--
Roman Busyguin

Believe in what you do and do what you believe in





решил вот так сделать, только он почему-то не меняет текст а просто на 
stdout выгоняет содержимое файла

пробовал и с ключом -е.. то же самое.. :(

for file in `find . -iname *.html`; do  name=`basename ${file} .html`; 
sed "s/.*<\/title>/${name}/g" ${file}; done



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Roman Busyguin

27.04.2007, в 18:21, Nikolay Nikolaev писал(а):


да я уже увидел :-)
теперь бы понять как выдрать из путь только название файла 


basename должен помочь

--
Roman Busyguin

Believe in what you do and do what you believe in







Re: search and replace

2007-04-27 Пенетрантность Nikolay Nikolaev

Artem Chuprina wrote:

Nikolay Nikolaev -> Sergei Stolyarov  @ Fri, 27 Apr 2007 13:44:25 +0300:

 >>> Добрый день, подскажите чем быстрее и главное как
 >>> обработать 10 мелких файлов на предмет нахождения в них "искомая
 >>> строчка"
 >>> и замены на "то что нужно"
 >>> Я знаю как это сделать в виме, но мне нужно это сделать с большим
 >>> кол-вом файлов.. :(
 >>> в одном каталоге рекурсивно
 >>> Спасибо
 >>> 
 >>

 >> find . -name '*.txt' -exec perl -pi -e 's/what_to_find/replacement_string/' 
\;
 >>   
 NN> а как в качестве того на что заменить  replacement_string поставить имя

 NN> изменяемого файла ?

{}, но оно будет с путем.

  

да я уже увидел :-)
теперь бы понять как выдрать из путь только название файла 


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Artem Chuprina
Nikolay Nikolaev -> Sergei Stolyarov  @ Fri, 27 Apr 2007 13:44:25 +0300:

 >>> Добрый день, подскажите чем быстрее и главное как
 >>> обработать 10 мелких файлов на предмет нахождения в них "искомая
 >>> строчка"
 >>> и замены на "то что нужно"
 >>> Я знаю как это сделать в виме, но мне нужно это сделать с большим
 >>> кол-вом файлов.. :(
 >>> в одном каталоге рекурсивно
 >>> Спасибо
 >>> 
 >>
 >> find . -name '*.txt' -exec perl -pi -e 's/what_to_find/replacement_string/' 
 >> \;
 >>   
 NN> а как в качестве того на что заменить  replacement_string поставить имя
 NN> изменяемого файла ?

{}, но оно будет с путем.

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

Обновление Windows изменило интуитивно ясный интерфейс Вашего компьютера.
Загрузите обновление интуиции с сайта Microsoft.
(С)энта


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Victor Wagner
On 2007.04.27 at 13:44:25 +0300, Nikolay Nikolaev wrote:

> Sergei Stolyarov wrote:
> >On Friday 27 April 2007 17:15, Nikolay Nikolaev wrote:
> >  
> >>Добрый день, подскажите чем быстрее и главное как
> >>обработать 10 мелких файлов на предмет нахождения в них "искомая
> >>строчка"
> >>и замены на "то что нужно"
> >>Я знаю как это сделать в виме, но мне нужно это сделать с большим
> >>кол-вом файлов.. :(
> >>в одном каталоге рекурсивно
> >>Спасибо
> >>
> >
> >find . -name '*.txt' -exec perl -pi -e 
> >'s/what_to_find/replacement_string/' \;

Вот -exec  использовать не рекомендую. По отдельному процессу perl
на каждый из 10  файлов поднимать - медленно получится. Лучше xargs

> >  
> а как в качестве того на что заменить  replacement_string поставить имя 
> изменяемого файла ?

Читать man perlvar на предмет того, в какую переменную perl кладет это
имя. 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность yuri . nefedov

On Fri, 27 Apr 2007, Nikolay Nikolaev wrote:


Добрый день, подскажите чем быстрее и главное как
обработать 10 мелких файлов на предмет нахождения в них "искомая строчка"
и замены на "то что нужно"
Я знаю как это сделать в виме, но мне нужно это сделать с большим кол-вом 
файлов.. :(

в одном каталоге рекурсивно


---

#!/bin/bash

for file in `find DIRECTORY`; do
  sed "s#CHTO_MENYAEM#NA_CHTO_MENYAEM#g" ${file}
done

---

 если условие сложное man 7 regex
 если условие зависит от содержимого нескольких строк, то
 лучше смотреть в сторону awk или perl.

 Yura.

Re: search and replace

2007-04-27 Пенетрантность Doroshok Stanislav
п'ятниця 27 квітень 2007 13:26, Иван Лох написав:
> On Fri, Apr 27, 2007 at 01:15:59PM +0300, Nikolay Nikolaev wrote:
> > Добрый день, подскажите чем быстрее и
> > главное как
> > обработать 10 мелких файлов на предмет
> > нахождения в них "искомая строчка"
> > и замены на "то что нужно"
> > Я знаю как это сделать в виме, но мне
> > нужно это сделать с большим кол-вом
> > файлов.. :(
>
> man sed или man ed
>
> > в одном каталоге рекурсивно
>
> man find
perl -pi -e  's/SEARCH/FOUND/g'  


Re: search and replace

2007-04-27 Пенетрантность Nikolay Nikolaev

Sergei Stolyarov wrote:

On Friday 27 April 2007 17:15, Nikolay Nikolaev wrote:
  

Добрый день, подскажите чем быстрее и главное как
обработать 10 мелких файлов на предмет нахождения в них "искомая
строчка"
и замены на "то что нужно"
Я знаю как это сделать в виме, но мне нужно это сделать с большим
кол-вом файлов.. :(
в одном каталоге рекурсивно
Спасибо



find . -name '*.txt' -exec perl -pi -e 's/what_to_find/replacement_string/' \;
  
а как в качестве того на что заменить  replacement_string поставить имя 
изменяемого файла ?

Спасибо.



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Sergei Stolyarov
On Friday 27 April 2007 17:15, Nikolay Nikolaev wrote:
> Добрый день, подскажите чем быстрее и главное как
> обработать 10 мелких файлов на предмет нахождения в них "искомая
> строчка"
> и замены на "то что нужно"
> Я знаю как это сделать в виме, но мне нужно это сделать с большим
> кол-вом файлов.. :(
> в одном каталоге рекурсивно
> Спасибо

find . -name '*.txt' -exec perl -pi -e 's/what_to_find/replacement_string/' \;
-- 
Sergei Stolyarov


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Victor Wagner
On 2007.04.27 at 13:15:59 +0300, Nikolay Nikolaev wrote:

> Добрый день, подскажите чем быстрее и главное как
> обработать 10 мелких файлов на предмет нахождения в них "искомая 
> строчка"
> и замены на "то что нужно"
> Я знаю как это сделать в виме, но мне нужно это сделать с большим 
> кол-вом файлов.. :(
> в одном каталоге рекурсивно
> Спасибо

find . -type f -print0|xargs sed -i.bak -e шаблон 

У sed команды поиска/замены такие же как у vim. Ноги у обоих растут из
ed, у vim, правда, через ex.

Или вместо sed 

perl -np -i.bak -e команда

Тут синтаксис немножко другйо будет

> 
> -- 
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact 
> [EMAIL PROTECTED]
> 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: search and replace

2007-04-27 Пенетрантность Иван Лох
On Fri, Apr 27, 2007 at 01:15:59PM +0300, Nikolay Nikolaev wrote:
> Добрый день, подскажите чем быстрее и 
> главное как
> обработать 10 мелких файлов на предмет 
> нахождения в них "искомая строчка"
> и замены на "то что нужно"
> Я знаю как это сделать в виме, но мне 
> нужно это сделать с большим кол-вом 
> файлов.. :(
man sed или man ed
> в одном каталоге рекурсивно
man find


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]