ALT Linux Community general discussions
 help / color / mirror / Atom feed
* Re: [Comm] sed -?
  2004-10-05 13:43 [Comm] sed -? Dolgov OV
@ 2004-10-05 13:07 ` Aleksander N. Gorohovski
  2004-10-05 14:27   ` Dolgov OV
  2004-10-05 15:19 ` Dolgov OV
  1 sibling, 1 reply; 11+ messages in thread
From: Aleksander N. Gorohovski @ 2004-10-05 13:07 UTC (permalink / raw)
  To: community

On Tue, 5 Oct 2004 16:43:09 +0300, Dolgov OV <dov@media-link.info> wrote:

> Здравствуйте.
>
> Подскажите плз. как sed'ом заменить некий patern переводом строки?
> Или может не sed'ом, а perl'ом, но задача вот в чем:
> Есть текстовый файл с фрагментами html кода. В каждой строке от 1-го до
> 30-ти участков, разделенных последовательностью </TD></tr>
> Вот эти </TD></tr> я и хочу заменить переводом строки, дабы уже потом
> обрабатывать каждую отдельную ячейку, как отдельную строку в файле.
>
> Пробовал
> cat list.txt | sed s/"<\/TD><\/tr>"/\n/g - > list1.txt
> тупо подставляется n.
>
> perl -nwe 'print "$1\n" if /(.*)<\/TD><\/tr>/' list.txt >
> list1.txt
> отбрасывает только последнюю последовательность. Может можно както
> perl'у объяснить чтобы он шел последовательно по строке до искомого
> patern'а?

Напиши програмку на perl, типа
---------------------------------
#!/usr/bin/perl

open (FILE,"list1.txt");
@a=<FILE>;
close (FILE);
my $i;
for (@a) {
/<\/TD><\/tr>/\n/g;
$a[$i++]=$_;
}
open (FILE,">list2.txt");
print FILE @a;
close (FILE);
-------------------------
Если ничего не пропустил, должно работать



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Comm] sed -?
@ 2004-10-05 13:43 Dolgov OV
  2004-10-05 13:07 ` Aleksander N. Gorohovski
  2004-10-05 15:19 ` Dolgov OV
  0 siblings, 2 replies; 11+ messages in thread
From: Dolgov OV @ 2004-10-05 13:43 UTC (permalink / raw)
  To: community

Здравствуйте.

Подскажите плз. как sed'ом заменить некий patern переводом строки?
Или может не sed'ом, а perl'ом, но задача вот в чем:
Есть текстовый файл с фрагментами html кода. В каждой строке от 1-го до
30-ти участков, разделенных последовательностью </TD></tr>
Вот эти </TD></tr> я и хочу заменить переводом строки, дабы уже потом
обрабатывать каждую отдельную ячейку, как отдельную строку в файле.

Пробовал 
cat list.txt | sed s/"<\/TD><\/tr>"/\n/g - > list1.txt
тупо подставляется n.

perl -nwe 'print "$1\n" if /(.*)<\/TD><\/tr>/' list.txt >
list1.txt
отбрасывает только последнюю последовательность. Может можно както
perl'у объяснить чтобы он шел последовательно по строке до искомого
patern'а?

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 13:07 ` Aleksander N. Gorohovski
@ 2004-10-05 14:27   ` Dolgov OV
  2004-10-05 15:18     ` Michael Holzman
                       ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Dolgov OV @ 2004-10-05 14:27 UTC (permalink / raw)
  To: community

On Tue, 05 Oct 2004 17:07:04 +0400
"Aleksander N. Gorohovski" <angel@feht.dgtu.donetsk.ua> wrote:
> Напиши програмку на perl, типа
> ---------------------------------
> #!/usr/bin/perl
> 
> open (FILE,"list1.txt");
> @a=<FILE>;
> close (FILE);
> my $i;
> for (@a) {
> /<\/TD><\/tr>/\n/g;
> $a[$i++]=$_;
> }
> open (FILE,">list2.txt");
> print FILE @a;
> close (FILE);
> -------------------------
> Если ничего не пропустил, должно работать

Чегото он ругается на команду перевода строки в программе (если я
правильно понял):
Backslash found where operator expected at ./myperl line 8, near
"/<\/TD><\/tr>/\"        (Missing operator before \?)
syntax error at ./myperl line 8, near "/<\/TD><\/tr>/\"
Execution of ./myperl aborted due to compilation errors.

Может я просто чего-то пропустил в man (sed|ed|awk) Просто уж очень
тяжко вникать в доку на не совсем понятном языке :-\

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 14:27   ` Dolgov OV
@ 2004-10-05 15:18     ` Michael Holzman
  2004-10-06  8:14     ` Denis A. Yurashkou
  2004-10-06 14:19     ` Aleksander N. Gorohovski
  2 siblings, 0 replies; 11+ messages in thread
From: Michael Holzman @ 2004-10-05 15:18 UTC (permalink / raw)
  To: community

Если я правильно помню, должен быть просто \\n внутри замены. 

К сожалению, проверить сейчас не могу, т.к. в жутком напряге :-((

   Mike

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 13:43 [Comm] sed -? Dolgov OV
  2004-10-05 13:07 ` Aleksander N. Gorohovski
@ 2004-10-05 15:19 ` Dolgov OV
  2004-10-05 18:39   ` Yura Kalinichenko
  1 sibling, 1 reply; 11+ messages in thread
From: Dolgov OV @ 2004-10-05 15:19 UTC (permalink / raw)
  To: community

On Tue, 5 Oct 2004 16:43:09 +0300
Dolgov OV <dov@media-link.info> wrote:
> Здравствуйте.
> 
> Подскажите плз. как sed'ом заменить некий patern переводом строки?
> Или может не sed'ом, а perl'ом, но задача вот в чем:
> Есть текстовый файл с фрагментами html кода. В каждой строке от 1-го
> до 30-ти участков, разделенных последовательностью </TD></tr>
> Вот эти </TD></tr> я и хочу заменить переводом строки, дабы уже потом
> обрабатывать каждую отдельную ячейку, как отдельную строку в файле.
> 
> Пробовал 
> cat list.txt | sed s/"<\/TD><\/tr>"/\n/g - > list1.txt
> тупо подставляется n.
> 
> perl -nwe 'print "$1\n" if /(.*)<\/TD><\/tr>/' list.txt >
> list1.txt
> отбрасывает только последнюю последовательность. Может можно както
> perl'у объяснить чтобы он шел последовательно по строке до искомого
> patern'а?

Как это ни печально, но пришлось воспользоваться услугами M$Word и его
функцией найти и заменить </TD></tr> на ^p (знак абзаца) :-\

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 15:19 ` Dolgov OV
@ 2004-10-05 18:39   ` Yura Kalinichenko
  2004-10-06  6:58     ` Dolgov OV
  0 siblings, 1 reply; 11+ messages in thread
From: Yura Kalinichenko @ 2004-10-05 18:39 UTC (permalink / raw)
  To: AltLinux Community Maillist

В Вто, 05.10.2004, в 18:19, Dolgov OV написал:
> On Tue, 5 Oct 2004 16:43:09 +0300
> Dolgov OV <dov@media-link.info> wrote:
> > Здравствуйте.
> > 
> > Подскажите плз. как sed'ом заменить некий patern переводом строки?
> > Или может не sed'ом, а perl'ом, но задача вот в чем:
> > Есть текстовый файл с фрагментами html кода. В каждой строке от 1-го
> > до 30-ти участков, разделенных последовательностью </TD></tr>
> > Вот эти </TD></tr> я и хочу заменить переводом строки, дабы уже потом
> > обрабатывать каждую отдельную ячейку, как отдельную строку в файле.
> > 
> > Пробовал 
> > cat list.txt | sed s/"<\/TD><\/tr>"/\n/g - > list1.txt
> > тупо подставляется n.
> > 
> > perl -nwe 'print "$1\n" if /(.*)<\/TD><\/tr>/' list.txt >
> > list1.txt
> > отбрасывает только последнюю последовательность. Может можно както
> > perl'у объяснить чтобы он шел последовательно по строке до искомого
> > patern'а?
> 
> Как это ни печально, но пришлось воспользоваться услугами M$Word и его
> функцией найти и заменить </TD></tr> на ^p (знак абзаца) :-\

Мда... И это все вместо элементарного:

sed -e 's:</TD></tr>:\
:g' list.txt > list1.txt

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

Hint: если хотите чему-то научиться путем в Unix-way - забудьте про Word
для таких случаев, заставляйте себя находить правильные решения - это
окупится.

-- 
Yura Kalinichenko



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 18:39   ` Yura Kalinichenko
@ 2004-10-06  6:58     ` Dolgov OV
  2004-10-06  7:36       ` Yura Kalinichenko
  0 siblings, 1 reply; 11+ messages in thread
From: Dolgov OV @ 2004-10-06  6:58 UTC (permalink / raw)
  To: community

On 05 Oct 2004 21:39:22 +0300
Yura Kalinichenko <yuk@iceb.vinnitsa.com> wrote:
> В Вто, 05.10.2004, в 18:19, Dolgov OV написал:
> > On Tue, 5 Oct 2004 16:43:09 +0300
> > Dolgov OV <dov@media-link.info> wrote:
> > > Здравствуйте.
> > > 
> > > Подскажите плз. как sed'ом заменить некий patern переводом строки?
> > > Или может не sed'ом, а perl'ом, но задача вот в чем:
> > > Есть текстовый файл с фрагментами html кода. В каждой строке от
> > > 1-го до 30-ти участков, разделенных последовательностью </TD></tr>
> > > Вот эти </TD></tr> я и хочу заменить переводом строки, дабы уже
> > > потом обрабатывать каждую отдельную ячейку, как отдельную строку в
> > > файле.
> > > 
> > > Пробовал 
> > > cat list.txt | sed s/"<\/TD><\/tr>"/\n/g - > list1.txt
> > > тупо подставляется n.
> > > 
> > > perl -nwe 'print "$1\n" if /(.*)<\/TD><\/tr>/' list.txt >
> > > list1.txt
> > > отбрасывает только последнюю последовательность. Может можно както
> > > perl'у объяснить чтобы он шел последовательно по строке до
> > > искомого patern'а?
> > 
> > Как это ни печально, но пришлось воспользоваться услугами M$Word и
> > его функцией найти и заменить </TD></tr> на ^p (знак абзаца) :-\
> 
> Мда... И это все вместо элементарного:
> 
> sed -e 's:</TD></tr>:\
> :g' list.txt > list1.txt

Тупо убирает </TD></tr>, а надо вместо этого "перевести строку", т.е.
симулировать нажатие 'Enter' (ну как еще объяснить на пальцах?) Я
специально оставил в начале письма свой первый вопрос в первозданном
виде.

> 
> Не говоря уже о том, что поиск с заменой может делать _любой_
> текстовый редактор в Linux, обладающий большей функциональностью, чем
> cat.
> 
> Hint: если хотите чему-то научиться путем в Unix-way - забудьте про
> Word для таких случаев, заставляйте себя находить правильные решения -
> это окупится.
> 

Надо было быстро :-\ А теперь я готов тренироваться и искать Unix=way
для подобной ситуации. Мне сложно в этом отношении, т.к. я вААще далеко
не программист и и для меня даже термины некоторые в манах (а тем более
на английском) не всегда понятны :-(

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-06  6:58     ` Dolgov OV
@ 2004-10-06  7:36       ` Yura Kalinichenko
  2004-10-06  8:15         ` Dolgov OV
  0 siblings, 1 reply; 11+ messages in thread
From: Yura Kalinichenko @ 2004-10-06  7:36 UTC (permalink / raw)
  To: AltLinux Community Maillist

В Срд, 06.10.2004, в 09:58, Dolgov OV написал:

> > sed -e 's:</TD></tr>:\
> > :g' list.txt > list1.txt
> 
> Тупо убирает </TD></tr>, а надо вместо этого "перевести строку", т.е.
> симулировать нажатие 'Enter' (ну как еще объяснить на пальцах?) 

Да именно это же и делается ! Вводите команду именно так, как я написал,
в ДВУХ строчках, не объединяйте их. Смысл: символ \ экранирует символ
перевода строки, в результате Enter не завершает ввод команды, а
передаетстся в аргумент sed.

-- 
Yura Kalinichenko



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 14:27   ` Dolgov OV
  2004-10-05 15:18     ` Michael Holzman
@ 2004-10-06  8:14     ` Denis A. Yurashkou
  2004-10-06 14:19     ` Aleksander N. Gorohovski
  2 siblings, 0 replies; 11+ messages in thread
From: Denis A. Yurashkou @ 2004-10-06  8:14 UTC (permalink / raw)
  To: community

'Dolgov OV' wrote on 05.10.2004 18:27:
> On Tue, 05 Oct 2004 17:07:04 +0400
> "Aleksander N. Gorohovski" <angel@feht.dgtu.donetsk.ua> wrote:
> 
>>Напиши програмку на perl, типа
>>---------------------------------
>>#!/usr/bin/perl
>>
>>open (FILE,"list1.txt");
>>@a=<FILE>;
>>close (FILE);
>>my $i;
>>for (@a) {
>>/<\/TD><\/tr>/\n/g;
Насколько я понимаю Perl, тут должен быть s/// ;)
Тогда и ругаться не будет.
>>$a[$i++]=$_;
>>}
>>open (FILE,">list2.txt");
>>print FILE @a;
>>close (FILE);
>>-------------------------
>>Если ничего не пропустил, должно работать
> 
> 
> Чегото он ругается на команду перевода строки в программе (если я
> правильно понял):
> Backslash found where operator expected at ./myperl line 8, near
> "/<\/TD><\/tr>/\"        (Missing operator before \?)
> syntax error at ./myperl line 8, near "/<\/TD><\/tr>/\"
> Execution of ./myperl aborted due to compilation errors.
> 
> Может я просто чего-то пропустил в man (sed|ed|awk) Просто уж очень
> тяжко вникать в доку на не совсем понятном языке :-\
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Community mailing list
> Community@altlinux.ru
> https://lists.altlinux.ru/mailman/listinfo/community


-- 
----------------
Best regards, Denis A. Yurashkou [DAY]
(dayfuaim@msx.ru)

Origin: Stop the World -- I Wanna Get Off!..


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-06  7:36       ` Yura Kalinichenko
@ 2004-10-06  8:15         ` Dolgov OV
  0 siblings, 0 replies; 11+ messages in thread
From: Dolgov OV @ 2004-10-06  8:15 UTC (permalink / raw)
  To: community

On 06 Oct 2004 10:36:16 +0300
Yura Kalinichenko <yuk@iceb.vinnitsa.com> wrote:

> В Срд, 06.10.2004, в 09:58, Dolgov OV написал:
> 
> > > sed -e 's:</TD></tr>:\
> > > :g' list.txt > list1.txt
> > 
> > Тупо убирает </TD></tr>, а надо вместо этого "перевести строку",
> > т.е. симулировать нажатие 'Enter' (ну как еще объяснить на пальцах?)
> > 
> 
> Да именно это же и делается ! Вводите команду именно так, как я
> написал, в ДВУХ строчках, не объединяйте их. Смысл: символ \

Понял :-) Спасибо, работает.

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Comm] sed -?
  2004-10-05 14:27   ` Dolgov OV
  2004-10-05 15:18     ` Michael Holzman
  2004-10-06  8:14     ` Denis A. Yurashkou
@ 2004-10-06 14:19     ` Aleksander N. Gorohovski
  2 siblings, 0 replies; 11+ messages in thread
From: Aleksander N. Gorohovski @ 2004-10-06 14:19 UTC (permalink / raw)
  To: community

On Tue, 5 Oct 2004 17:27:36 +0300, Dolgov OV <dov@media-link.info> wrote:

> On Tue, 05 Oct 2004 17:07:04 +0400
> "Aleksander N. Gorohovski" <angel@feht.dgtu.donetsk.ua> wrote:
>> Напиши програмку на perl, типа
>> ---------------------------------
>> #!/usr/bin/perl
>>
>> open (FILE,"list1.txt");
>> @a=<FILE>;
>> close (FILE);
>> my $i;
>> for (@a) {
>> /<\/TD><\/tr>/\n/g;
>> $a[$i++]=$_;
>> }
>> open (FILE,">list2.txt");
>> print FILE @a;
>> close (FILE);
>> -------------------------
>> Если ничего не пропустил, должно работать
>
> Чегото он ругается на команду перевода строки в программе (если я
> правильно понял):
> Backslash found where operator expected at ./myperl line 8, near
> "/<\/TD><\/tr>/\"        (Missing operator before \?)
> syntax error at ./myperl line 8, near "/<\/TD><\/tr>/\"
> Execution of ./myperl aborted due to compilation errors.

Sorry, должно быть
s/<\/TD><\/tr>/\n/g;



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2004-10-06 14:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-10-05 13:43 [Comm] sed -? Dolgov OV
2004-10-05 13:07 ` Aleksander N. Gorohovski
2004-10-05 14:27   ` Dolgov OV
2004-10-05 15:18     ` Michael Holzman
2004-10-06  8:14     ` Denis A. Yurashkou
2004-10-06 14:19     ` Aleksander N. Gorohovski
2004-10-05 15:19 ` Dolgov OV
2004-10-05 18:39   ` Yura Kalinichenko
2004-10-06  6:58     ` Dolgov OV
2004-10-06  7:36       ` Yura Kalinichenko
2004-10-06  8:15         ` Dolgov OV

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/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 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git