如何使用非ALPHANUMERIC字符删除具有电子邮件列表中的例外的行

时间:2015-09-30 16:21:57

标签: sed grep

我在文本文件中使用了以下代码,其中/ n作为具有大约4000万行的分隔符。

  

'egrep -e -i [[:alnum:] ._ @] file>温度&& mv临时文件'

我需要使用BRE。

显然,在这样做之后,我仍然能够找到包含/的几行。 - ,这应该是不可接受的字符。 。 _ @是唯一可接受的非字母数字字符。

我通常使用类似的东西:

  

'sed -e'/ string / d'文件>温度&& mv临时文件

使用BRE进行此操作的正确命令是什么?

2 个答案:

答案 0 :(得分:1)

这可能适合你(GNU sed):

sed -i '/[^[:alnum:]_@]/d' file

编辑内联,删除包含非字母数字或下划线或符号的字符的任何行。

答案 1 :(得分:0)

使用sed:

sed -n -e '/@/p' -e '/^[[:alnum:]]*$/p' your_file
从技术上讲,使用re进行电子邮件检测并不是很好。但无论如何,你有你的软件。

http://davidcel.is/posts/stop-validating-email-addresses-with-regex/