除了电子邮件地址,我怎么得到"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也会工作......