【发布时间】:2015-11-10 16:29:18
【问题描述】:
我尝试使用 xargs 和 grep 从 text/html 文件目录中递归解析电子邮件地址,但此命令始终包含路径(我只想要生成的 emails.csv 文件中的电子邮件地址)。
find . -type f | xargs grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" >> ~/emails.csv
你能解释一下我的 grep 命令有什么问题吗?我不需要对它进行排序或唯一。我想匹配文件中所有出现的电子邮件地址。我需要使用 xargs,因为我正在解析 20 GB 文本文件中的电子邮件。
谢谢。
【问题讨论】:
-
我可能会单引号正则表达式,以避免正则表达式的外壳插值。
-
尝试添加
-h作为grep的一个选项来隐藏文件名 - 当您搜索多个文件时它会自动添加它们。 -
-h成功了!谢谢@MarkSetchell -
我已将其添加为大家可以轻松查看的答案。