我在文本文件中使用了以下代码,其中/ n作为具有大约4000万行的分隔符。
'egrep -e -i [[:alnum:] ._ @] file>温度&& mv临时文件'
我需要使用BRE。
显然,在这样做之后,我仍然能够找到包含/的几行。 - ,这应该是不可接受的字符。 。 _ @是唯一可接受的非字母数字字符。
我通常使用类似的东西:
'sed -e'/ string / d'文件>温度&& mv临时文件
使用BRE进行此操作的正确命令是什么?
答案 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/