URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 25789
[ Назад ]

Исходное сообщение
"как с помощью awk или sed сделать так:"

Отправлено mix , 30-Янв-03 19:37 
Предположим у нас есть строка:
ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>

есть некий шаблон.
@ee\.rt

если в строке найден этот шаблон то в переменную aaa положить
его, плюс все символы до символа < в сторону начала строки :)

aaa=aaa@ee.rt

КАК!?

Спасибо.


Содержание

Сообщения в этом обсуждении
"RE: как с помощью awk или sed сделать так:"
Отправлено vnp , 31-Янв-03 04:50 
>Предположим у нас есть строка:
>ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>
>
>есть некий шаблон.
>@ee\.rt
>
>если в строке найден этот шаблон то в переменную aaa положить
>его, плюс все символы до символа < в сторону начала строки :)
>
>
>aaa=aaa@ee.rt
>
>КАК!?
>
>Спасибо.

Примерно так:

sed -e 's/<\([^@]*@ee\.rt\)/\1/'


"RE: как с помощью awk или sed сделать так:"
Отправлено mix , 31-Янв-03 11:16 
.
>
>Примерно так:
>
>sed -e 's/<\([^@]*@ee\.rt\)/\1/'


неа :(


"RE: как с помощью awk или sed сделать так:"
Отправлено lavr , 31-Янв-03 11:18 
>.
>>
>>Примерно так:
>>
>>sed -e 's/<\([^@]*@ee\.rt\)/\1/'
>
>
>неа :(

каков вопрос, таков ответ


"RE: как с помощью awk или sed сделать так:"
Отправлено mix , 31-Янв-03 11:31 
обычный вопрос. ответ на него такой:

sed 's/\(.*<\)\(.*@ee\.rt*\)\(>.*\)/\2/'


"RE: как с помощью awk или sed сделать так:"
Отправлено Bootmen , 31-Янв-03 11:46 
>Предположим у нас есть строка:
>ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>
>есть некий шаблон.
>@ee\.rt
>aaa=aaa@ee.rt

А можно и красивее и запутанее:
str=`echo "ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>"`
aaa=`echo $str | awk '
$1 ~ "@ee.rt" { match($0, /@ee.rt/); HALT=RSTART
for(i=HALT; i>0; i--)
{
if(substr($0, i, 1) ~ "<")
{
print substr($0, i+1, start) "@ee.rt"; exit
}
else
start+=1
}
}'`
echo "$aaa"
exit 0