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

перл скрипт

Доброго времени суток господа и дамы!
Есть текстовый файлик с определенным количеством столбцов, в качестве
разделителей используются | и ^. В выходном файле мне нужны только
некоторые столбцы ну и нужно в качестве разделителя использовать пробел.
Как с одним разделителем я разобрался, а вот с двумя.....
Например
12323|ваввыа|2132|4343|рпапр|см^sdfs^

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

Ответить   Thu, 14 Dec 2006 10:43:15 +0500 (#620237)

 

Ответы:

Здравствуйте, Andry
Ответ на Ваше письмо от 14.12.2006 10:43

А тут перл не нужен, можно и так:

$ cat file | sed 's/[|^]/\ /g' | awk '{print($1 " " $2 " " $3 " " $4 "
" $5 " " $6 " " $7 " " $8);}'

Если тебе не нужны, например столбцы 4 и 7 то просто убери их тела
команды для AWK, вот так:

$ cat file | sed 's/[|^]/\ /g' | awk '{print($1 " " $2 " " $3 " " $5 "
" $6 " " $8);}'

В сообщении от 1166085795 секунд после начала Эпохи Andry написал(а):

Например, вывести вторую и седьмую колонки:

$ tr ^ \| file |cut -d\| -f2,7 --output-delimiter=' '

А если обязательно в Perl:

$ perl -n -e '@x =split /\|/; @y = split /\^/, $x[5]; print "$x[1] $y[1]\n";'
file

Ответить   Konstantin Korikov Thu, 14 Dec 2006 08:52:29 +0200 (#620263)

 

Konstantin Korikov пишет:

Так получается вот что

23112006 511 000018508915 BP^(3496)326281^

23112006 411 000018508918 CP^(3496)326281^

тоесть | удаляет, а ^ остается .
Последние 2 столбца получаются слиты, а мне их нужно поделить!

P.S.
скрипт нужен именно на перле.

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

Ответить   Thu, 14 Dec 2006 12:22:43 +0500 (#620269)

 

В сообщении от 1166091763 секунд после начала Эпохи Andry написал(а):

$ echo '12323|ваввыа|2132|4343|рпапр|см^sdfs^' |
perl -n -e '@x =split /\|/; @y = split /\^/, $x[5]; print "$x[1] $y[1]\n";'
ваввыа sdfs

А у меня не остается. Подставьте правильные числа и может у Вас тоже
оставаться не будет.

Ответить   Konstantin Korikov Thu, 14 Dec 2006 09:40:10 +0200 (#620275)

 

Konstantin Korikov пишет:

Сори. Всему виной моя не внимательность и возможно похмелье :-) .

P.S.
Всем спасибо! Тема закрыта!

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

Ответить   Thu, 14 Dec 2006 13:03:50 +0500 (#620283)