Extract email addresses from text file using regex with bash or command line

后端 未结 4 1350
误落风尘
误落风尘 2020-12-15 08:32

How can I grep out only the email address using a regex from a file with multiple lines similar to this. (a sql dump to be precise)

Unfortunately I cannot just go b

4条回答
  •  南笙
    南笙 (楼主)
    2020-12-15 08:51

    If you still want to go the grep -o route, this one works for me:

    $ grep -i -o '[A-Z0-9._%+-]\+@[A-Z0-9.-]\+\.[A-Z]\{2,4\}' file.csv
    cgreen@blah.com
    $ 
    

    I appear to have 2 versions of grep in my path, 2.4.2 and 2.5.1. Only 2.5.1 appears to support the -o option.

    Your regular expression is close, but you're missing 2 things:

    • regular expressions are case sensitive. So you can either pass -i to grep or add extra a-z to your square bracket expressions
    • The + modifiers and {} curly braces appear to need to be escaped.

提交回复
热议问题