Terminal 使用GREP在文件服务器上搜索具有电子邮件地址的所有文件
有一个数据泄露,我需要找到一个文件服务器的所有文件路径和电子邮件地址 我在努力Terminal 使用GREP在文件服务器上搜索具有电子邮件地址的所有文件,terminal,grep,zsh,Terminal,Grep,Zsh,有一个数据泄露,我需要找到一个文件服务器的所有文件路径和电子邮件地址 我在努力 grep -lr --include='*.{csv,xls,xlsx,txt}' "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" * >output.txt 但是,这是一无所获 如能提出建议,我将不胜感激。谢谢 您的grep命令几乎是正确的,只有一些小故障使它无法工作 首先,为了匹配您的电子邮件正则表达式,您应该使用grep的扩
grep -lr --include='*.{csv,xls,xlsx,txt}' "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" * >output.txt
但是,这是一无所获
如能提出建议,我将不胜感激。谢谢 您的grep命令几乎是正确的,只有一些小故障使它无法工作 首先,为了匹配您的电子邮件正则表达式,您应该使用grep的扩展正则表达式选项
-E
接下来,如前所述,您的--include
模式在zsh中不起作用。您需要将结束引号放在大括号之前,如下所示:--include='*.{csv,xls,xlsx,txt}
最后,如果要获取服务器上的所有文件,则应在根目录/
上执行此命令,而不是像执行*
命令一样在目录中的所有文件/目录上执行此命令
所以您的grep命令应该是:
grep-Elr--include='.*.{csv,xls,xlsx,txt}“\b[A-Za-z0-9.\uz%+-]+@[A-Za-z0-9.-]+\[A-Za-z]{2,6}\b”/
需要考虑的一些要点:
- 您不会在excel文件
和.xls
中检测到电子邮件,因为它们是二进制文件,所以grep将无法解析它们.xlsx
- ,在电子邮件解析中有很多特殊情况。您当前使用的电子邮件模式将捕获几乎所有的电子邮件,但不是所有的