* [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: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
* 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 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-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
* 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-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
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