Удалите все, кроме символов между '<' & '>,' в Vim - извлеките адреса электронной почты из поля "Кому" в Gmail - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть список адресов электронной почты, разделенных запятыми, с каждым фактическим адресом, перед которым стоит имя контакта (из Gmail).Вот пример:

Fred Flintstone <fred@flintstone.org>, Wilma Flintstone <wilma@flintstone.org>, Barney Rubble <barney@rubble.org>, Bamm-Bamm Rubble <bammbamm@rubble.org>,

преобразуется в:

fred@flintstone.org, wilma@flintstone.org, barney@rubble.org, bammbamm@rubble.org,

Справочная информация: я пытаюсь вставить список контактов в приглашение webex, которое может принимать только адреса электронной почты.

Удалите все, кроме соответствия регулярному выражению в Vim , но в этом случае все адреса электронной почты находятся в одной строке.

Ответы [ 3 ]

4 голосов
/ 16 сентября 2011

Вы пробовали?

:s/.\{-}\%(\(,\s*\)\|<\(.\{-}\)>\)/\1\2/g

Следующее также будет работать:

:s/.*/\=join(map(split(submatch(0), ','), "matchstr(v:val, '<\\zs.*\\ze>')"), ', ')
2 голосов
/ 16 сентября 2011

с awk

    echo "Fred Flintstone <fred@flintstone.org>, Wilma Flintstone <wilma@flintstone.org>, Barney Rubble <barney@rubble.org>, Bamm-Bamm Rubble <bammbamm@rubble.org>
"|awk -F'<|>' '{for (i=1;i<=NF;i++)printf (i%2==0)?$i",":""}'

или в VIM

:%s/,/\r/g
:%s/.*<\(.*\)>/\1/g
0 голосов
/ 16 сентября 2011

Не могли бы вы положить его в Excel, затем разделите данные на запятую, а затем а затем найти и заменить, чтобы избавиться от ангельской скобки

Если вы не используете какой-то код для этого, это будет самый простой если у вас нет 100 000 тысяч адресов

...