删除 Vim 中除 '<' 和 '>,' 之间的字符之外的所有内容 - 从 Gmail "To"字段中提取电子邮件地址



我有一个逗号分隔的电子邮件地址列表,每个实际地址都加上联系人的姓名(来自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中除了regex匹配之外的所有内容,但是在这种情况下所有的电子邮件地址都在一行。

你试过了吗?

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

下面也可以:

:s/.*/=join(map(split(submatch(0), ','), "matchstr(v:val, '<\zs.*\ze>')"), ', ')

with 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

你能不能把它放到Excel里,然后用逗号分割数据,然后然后执行查找和替换来删除

除非你使用一些代码来做这将是最简单的除非你有十万个地址

最新更新