所有的电子邮件都保存在一个文本文件中,但是没有任何空格,每行也有很多。寻找一种用Linux对电子邮件进行排序的方法。
our_company_emails.txt:
test1@sampleemail.comtest1@sampleemail.biztest1@sampleemail.infotest1@sampleemail.net期望产出:
test1@sampleemail.com
test1@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.net发布于 2013-09-23 11:27:14
我想知道您的文本文件是否实际上是用空字符(0x00)分隔的。
基本上你可以这样做:
grep -oE '[^@]+@[^@]+\.(com|net|biz|info)' our_company_emails.txt | sort你可以增加更多的tlds。
如果文本文件用空字符分隔,则可以这样做:
xargs -0 printf "%s\n" < our_company_emails.txt | sort发布于 2013-09-23 11:32:24
最简单的方法是:
sed -r 's/([[:alnum:]]@[[:alnum:]]+\.)(com|info|biz|net)/\1\2\n/g' our_company_emails.txt
test1.asdf@sampleemail.com
test1.net@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.net
bob@comcast.net添加新域,必要时编辑.
编辑:
发布于 2013-09-23 11:31:18
试试这句话:
sed -r 's/(.)(test1@)/\1\n\2/g' file产出:
test1@sampleemail.com
test1@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.netgroup1 (.)只是为了跳过在第一个电子邮件地址上发生的替换。
https://stackoverflow.com/questions/18957999
复制相似问题