The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"совпадения в строке"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"совпадения в строке"  
Сообщение от Happy_demon email(ok) on 17-Янв-08, 13:46 
Доброе время. есть файлик в нем в каждой строке есть несколько емаил-адресов (1,2 и более адресов). неоходимо вытащить только маил, но именно в том порядке, в котором они идут в файле, т.е.
> gdfgdfgdgf gfgd@dfsdfs.ru dlfklskdl; kfsjdfks@djkfsjdklf.com

после выбоки у меня должно получиться в одной строке эти 2 мыла. пока делаю так
> cat 4 | grep -oE "[^<>]+@[^<>]+"   > 5

он на выходе даёт все адреса, но по одному в каждой строке, а мне надо чтобы в каждой строке были все встречающиеся в этой строке адреса. присоветуйте что-нибудь. perl, sed, awk, sh - без разницы, главное чтоб работало. заранее спасибо

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "совпадения в строке"  
Сообщение от phpcoder email(??) on 17-Янв-08, 14:52 
Можно свести задачу не к тому, чтобы из строки адреса выковыривать, а к тому чтобы удалить из строке не адреса. Удалять их можно или регулярным выражением (sed в помощь -- s///g) или же можно разбить строку по пробелам (cut) и проверять каждую часть -- адрес или нет? Если адрес печатать, не адрес -- не печатать, а итог опять склеить в одну строку (paste -s).


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "совпадения в строке"  
Сообщение от angra (ok) on 18-Янв-08, 12:12 
Для строк наподобие приведенной:
$ cat t
gdfgdfgdgf gfgd@dfsdfs.ru dlfklskdl; kfsjdfks@djkfsjdklf.com
gdfgdfgdgf gfgd@dfsdfs.ru dlfklskdl; kfsjdfks@djkfsjdklf.com gdfgdfgdgf gfgd@dfsdfs.ru dlfklskdl; kfsjdfks@djkfsjdklf.com
perl -ne 'foreach (split){$s.="$_ " if /@/};chop $s;print "$s\n"' t
gfgd@dfsdfs.ru kfsjdfks@djkfsjdklf.com
gfgd@dfsdfs.ru kfsjdfks@djkfsjdklf.comgfgd@dfsdfs.ru kfsjdfks@djkfsjdklf.com gfgd@dfsdfs.ru kfsjdfks@djkfsjdklf.com

То есть предполагается что "слова" разделены whitespace, мылом считается "слово" где есть @. Если условия другие, то опишите их подробней.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру