除了电子邮件地址,我怎样才能"删除"其他所有内容.

NVK*_*NVK 3 sed

除了电子邮件地址,我怎么得到"sed"删除其他所有内容.

db dump: someusername ::: kRW...0fPc ::: $2a$10$...aucvkDt86 ::: joesmith@gmail.com
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 20

它必须是sed吗?grep怎么样?以下是如何将它与你给出的正则表达式一起使用:

$ cat dbdump.txt 
db dump: someusername ::: kRW...0fPc ::: $2a$10$...aucvkDt86 ::: joesmith@gmail.com
another line with two e-mail addresses <test@example.com> on it -- bob@example.org

$ grep -EiEio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b' dbdump.txt
joesmith@gmail.com
test@example.com
bob@example.org
Run Code Online (Sandbox Code Playgroud)

-o标志仅打印匹配部分,即仅打印电子邮件地址.-i使匹配大小写不敏感.它甚至可以在同一行上找到多个电子邮件地址.

编辑:我无法抗拒-EiEio.我想grep -Eio或者egrep -io也会工作......