我有一个电子邮件地址文件(文件 1)和另一个包含其中一些电子邮件地址的数据行文件(文件 2)
我想比较文件并删除文件 2 中在文件 1 中具有匹配电子邮件的所有行。
我知道我可以做一个循环并使用sed -i
或循环并将每一行 grep 到一个新文件,然后将文件与 COMM 进行比较
但是我想知道是否有一种比较方法可以将 file1 中的所有行都 grep 到 file2 并且只留下 file2 中不包含文件 1 中的任何电子邮件的行
文件1:
test@invalid.com
test2@invalid.com
test3@invalid.com
Run Code Online (Sandbox Code Playgroud)
文件2:
23456|tom|jones|test@goodemailcom|10
12345|pete|best|pete@goodemail.com|10
87569|remove3|me3|test3@invalid.com|10
23098|mike|jones|mike@goodemailcom|10
10985|al|best|al@goodemail.com|10
09865|removve|me|test@invalid.com|10
13579|remove2|me2|test2@invalid.com|10
Run Code Online (Sandbox Code Playgroud)
欣赏任何人拥有的任何知识。
您可以fgrep
为此使用:
fgrep -v -f file1 file2 > unique_addresses
Run Code Online (Sandbox Code Playgroud)
如果您在两个文件中每行都有 1 个电子邮件地址,则此任务会容易得多。
传统上fgrep
作为一个单独的程序存在,但在 GNU 实用程序中,grep -F
做同样的事情。