得到Ubuntu Linux的grep只能从文件中的某个域获取电子邮件?

时间:2017-07-22 04:40:32

标签: regex email ubuntu grep

我正在筛选一个.asc文件,试图获取在某个域名注册的所有电子邮件实例,例如'abc.def'作为示例。
我试试这个:

grep -o ,*@abc.def somefile.asc

虽然我知道文件中存在此类电子邮件,但它什么都不做。

我的正则表达式有问题吗?请记住,该文件本质上是一个csv文件,因此前面是逗号。我试过用它来逃避它但仍然没有结果。

1 个答案:

答案 0 :(得分:1)

grep -o ,*@abc.def somefile.asc

这会找到或更多逗号,然后是@abc,然后任何字符(因为点未转义),然后def在任何行中

你可能想要的是:

grep -oE '[^[:blank:]@,]+@abc\.def' somefile.asc
  • [^[:blank:]@,]+:使用否定括号表达式匹配任何非空白字符以及@@
  • @:匹配文字@
  • abc\.def:匹配文字文字abc.def(注意必须如何转义点以匹配文字.