Предположим у нас есть строка:
ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>есть некий шаблон.
@ee\.rtесли в строке найден этот шаблон то в переменную aaa положить
его, плюс все символы до символа < в сторону начала строки :)aaa=aaa@ee.rt
КАК!?
Спасибо.
>Предположим у нас есть строка:
>ывывы<dfsdfds@ddd.rt>,dsfdsfd<aaa@ee.rt>,fdgdfgd<aaa@>
>
>есть некий шаблон.
>@ee\.rt
>
>если в строке найден этот шаблон то в переменную aaa положить
>его, плюс все символы до символа < в сторону начала строки :)
>
>
>aaa=aaa@ee.rt
>
>КАК!?
>
>Спасибо.Примерно так:
sed -e 's/<\([^@]*@ee\.rt\)/\1/'
.
>
>Примерно так:
>
>sed -e 's/<\([^@]*@ee\.rt\)/\1/'
неа :(
>.
>>
>>Примерно так:
>>
>>sed -e 's/<\([^@]*@ee\.rt\)/\1/'
>
>
>неа :(каков вопрос, таков ответ
обычный вопрос. ответ на него такой:sed 's/\(.*<\)\(.*@ee\.rt*\)\(>.*\)/\2/'
>Предположим у нас есть строка:
>ывывы<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