Regex 在电子邮件地址后添加换行符
所有电子邮件都保存在一个文本文件中,但没有任何空格,每行有许多。 正在寻找一种使用Linux的方法,使用电子邮件的正则表达式模式对它们进行排序 我们的_company_emails.txt:Regex 在电子邮件地址后添加换行符,regex,linux,bash,sed,awk,Regex,Linux,Bash,Sed,Awk,所有电子邮件都保存在一个文本文件中,但没有任何空格,每行有许多。 正在寻找一种使用Linux的方法,使用电子邮件的正则表达式模式对它们进行排序 我们的_company_emails.txt: test1@sampleemail.comtest1@sampleemail.biztest1@sampleemail.infotest1@sampleemail.net 期望输出: test1@sampleemail.com test1@sampleemail.biz t
test1@sampleemail.comtest1@sampleemail.biztest1@sampleemail.infotest1@sampleemail.net
期望输出:
test1@sampleemail.com
test1@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.net
我想知道您的文本文件是否以空字符(0x00)分隔 基本上你可以这样做:
grep -oE '[^@]+@[^@]+\.(com|net|biz|info)' our_company_emails.txt | sort
您可以添加更多TLD
如果文本文件用空字符分隔,则可以改为:
xargs -0 printf "%s\n" < our_company_emails.txt | sort
xargs-0 printf“%s\n”
我想知道您的文本文件是否以空字符(0x00)分隔
基本上你可以这样做:
grep -oE '[^@]+@[^@]+\.(com|net|biz|info)' our_company_emails.txt | sort
您可以添加更多TLD
如果文本文件用空字符分隔,则可以改为:
xargs -0 printf "%s\n" < our_company_emails.txt | sort
xargs-0 printf“%s\n”
试试这句话:
sed -r 's/(.)(test1@)/\1\n\2/g' file
输出:
test1@sampleemail.com
test1@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.net
group1()
,只用于跳过在第一个电子邮件地址上发生的替换。请尝试这一行:
sed -r 's/(.)(test1@)/\1\n\2/g' file
输出:
test1@sampleemail.com
test1@sampleemail.biz
test1@sampleemail.info
test1@sampleemail.net
group1
()
,只用于跳过在第一个电子邮件地址上发生的替换。最简单的方法是:
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
添加新域,必要时进行编辑
编辑:
- 按照Ed Morton的建议进行更正
- 还包括用户名包含点(.)和域后缀的情况
- 最简单的方法是:
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
添加新域,必要时进行编辑
编辑:
- 按照Ed Morton的建议进行更正
- 还包括用户名包含点(.)和域后缀的情况
这不是很有帮助。否决投票也不能解决问题。如果你有
foo@bar.com
,foo@bar.co
。若要查看是否存在任何无法打印的分隔符:od-c我们公司的电子邮件.txt
这并没有什么帮助。向下投票也不能解决问题。如果您有foo@bar.com
,foo@bar.co
。若要查看是否有任何无法打印的分隔符:od-c我们公司的电子邮件.txt
我更喜欢这一个…似乎要简单得多,只需将空字符替换为换行符即可。YMMV这似乎是最好的,除了必须明确指定所有(子)域。。谢谢兄弟,我更喜欢这个…看起来做起来要简单得多,tr\000\\n
只需用换行符替换空值即可。YMMV这似乎是最好的,除了必须明确指定所有(子)域。。谢谢兄弟至少失去UOOC并锚定你的RE-so“bob@comcast.net“不会变成”bob@com“在一行上,在另一行上使用”cast.net“。至少失去UUOC并锚定你的RE-so”bob@comcast.net“不会变成”bob@com“在一行上”和“cast.net”在另一行上。