我尝试使用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的文本文件解析电子邮件。
感谢。
答案 0 :(得分:0)
当您告诉grep
搜索多个文件时,它会将相应的文件名添加到搜索结果中。请尝试以下方法查看效果...
首先,搜索一个文件:
grep local /etc/hosts
# localhost is used to configure the loopback interface
127.0.0.1 localhost
现在搜索两个文件:
grep local /etc/hosts /dev/null
/etc/hosts:# localhost is used to configure the loopback interface
/etc/hosts:127.0.0.1 localhost
要取消找到匹配项的文件名,请将-h
开关添加到此grep
grep -h <something> <somewhere>