Отправляет email-рассылки с помощью сервиса Sendsay

За 2009-03-24

Re: vim and regexp

По-моему на паскале это из пушки по воробьям.

awk 'NF<=4' infile > outfile

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35924; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836965

   2009-03-24 22:32:05 (#836965)

Re: vim and regexp

Maksim V. Kovalenko wrote:
> Спасибо!
> А вот может кто подскажет как решить этот вопрос с помощью awk or sed?
>

Я бы сделал так:

awk 'NF <= 4' filename

должно хватить:)

   2009-03-24 22:30:45 (#836956)

Re: vim and regexp

Это все хорошо, но такое решение не совсем подходит. Мне надо это
запускать на сервере. Желательно, чтобы были стандартные линуксовые
программы
авк сед вим

Alexander wrote:
> Пардон, не заметил, что четыре включительно.
>
> {$H+}
> {$RANGECHECKS ON}
> {$SMARTLINK ON}
>
> var
> s : string;
> f, c : LongInt;
> sstate : boolean;
>
> begin
>
> while not EOF do begin
>
> ReadLn(s);
>
> sstate := true;
> c := 0;
>
> for f := 1 to Length(s) do begin
>
> if s[f] = ' ' then sstate := true;
>
> if sstate and (s[f] <> ' ') then begin inc(c); sstate := false; end;
>
> if c = 5 then break;
>
> end; {next f}
>
> if c < 5 then WriteLn(s);
>
> end; {wend}
>
>
> end.
>
>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35922; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836943

   2009-03-24 22:29:05 (#836943)

Re: vim and regexp

Пардон, не заметил, что четыре включительно.

{$H+}
{$RANGECHECKS ON}
{$SMARTLINK ON}

var
s : string;
f, c : LongInt;
sstate : boolean;

begin

while not EOF do begin

ReadLn(s);

sstate := true;
c := 0;

for f := 1 to Length(s) do begin

if s[f] = ' ' then sstate := true;

if sstate and (s[f] <> ' ') then begin inc(c); sstate := false; end;

if c = 5 then break;

end; {next f}

if c < 5 then WriteLn(s);

end; {wend}

end.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35921; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836898

   2009-03-24 17:43:02 (#836898)

Re: vim and regexp

Не знаю про awk и sed, но знаю Паскаль (бинарник кину в личку):

{$H+}
{$RANGECHECKS ON}
{$SMARTLINK ON}

var
s : string;
f, c : LongInt;
sstate : boolean;

begin

while not EOF do begin

ReadLn(s);

sstate := true;
c := 0;

for f := 1 to Length(s) do begin

if s[f] = ' ' then sstate := true;

if sstate and (s[f] <> ' ') then begin inc(c); sstate := false; end;

if c = 4 then break;

end; {next f}

if c < 4 then WriteLn(s);

end; {wend}

end.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35920; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836886

   2009-03-24 16:22:26 (#836886)

Re: vim and regexp

On Tuesday 24 March 2009 16:54:54 Maksim V. Kovalenko wrote:
> вообще 4 любых слова
> т.е. чтобы строк не было, где больше 4 слова
>
Вообще то, в vim нет понятия слово как набор сиволов. И нет метасивола для
этого. \w означает символ.

   2009-03-24 16:05:05 (#836880)

Re: vim and regexp

Спасибо!
А вот может кто подскажет как решить этот вопрос с помощью awk or sed?

Alexey wrote:
> On Tuesday 24 March 2009 16:54:54 Maksim V. Kovalenko wrote:
>> вообще 4 любых слова
>> т.е. чтобы строк не было, где больше 4 слова
>>
> Вообще то, в vim нет понятия слово как набор сиволов. И нет метасивола для
> этого. \w означает символ.
> Возможно придётся воспользоваться awk, или что то в этом духе...
>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35918; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836877

   2009-03-24 15:57:30 (#836877)

Re: vim and regexp

On Tuesday 24 March 2009 16:54:54 Maksim V. Kovalenko wrote:
> вообще 4 любых слова
> т.е. чтобы строк не было, где больше 4 слова
>
Вообще то, в vim нет понятия слово как набор сиволов. И нет метасивола для
этого. \w означает символ.
Возможно придётся воспользоваться awk, или что то в этом духе...

   2009-03-24 15:41:30 (#836872)

Re: vim and regexp

вообще 4 любых слова
т.е. чтобы строк не было, где больше 4 слова

Alexey wrote:
> On Tuesday 24 March 2009 15:30:06 Maksim V. Kovalenko wrote:
>> Приветсвую!
>> Вот задался вопросом как в виме по регулярным выражениям удалить строки,
>> где встречаются больше 4 слов
>> есть файлик достаточно большой и хочу удалить все строки содержащие
>> больше 4 слов. В vim пишу так
>>
>> :g/w\{1,4}/d
>>
>> но к сожелению ничего не удаляет. вроде как правильно все написал, но
>> результата 0
>>
> Во первых, если логика правильная, то должно быть g/\w\{1,4\}/d
> При этом он удалит всё.
> Надо более 4 одинаковых подряд идущих слова, или вообще более 4 любых слов?
>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35916; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836857

   2009-03-24 14:56:21 (#836857)

Re: vim and regexp

On Tuesday 24 March 2009 15:30:06 Maksim V. Kovalenko wrote:
> Приветсвую!
> Вот задался вопросом как в виме по регулярным выражениям удалить строки,
> где встречаются больше 4 слов
> есть файлик достаточно большой и хочу удалить все строки содержащие
> больше 4 слов. В vim пишу так
>
> :g/w\{1,4}/d
>
> но к сожелению ничего не удаляет. вроде как правильно все написал, но
> результата 0
>
Во первых, если логика правильная, то должно быть g/\w\{1,4\}/d
При этом он удалит всё.
Надо более 4 одинаковых подряд идущих слова, или вообще более 4 любых слов?

   2009-03-24 14:42:38 (#836848)

vim and regexp

Приветсвую!
Вот задался вопросом как в виме по регулярным выражениям удалить строки,
где встречаются больше 4 слов
есть файлик достаточно большой и хочу удалить все строки содержащие
больше 4 слов. В vim пишу так

:g/w\{1,4}/d

но к сожелению ничего не удаляет. вроде как правильно все написал, но
результата 0

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35914; Возраст листа: 2069; Участников: 1377
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/836820

   2009-03-24 13:32:00 (#836820)