linux - 如何从另一个文件A中删除文件B上出现的行?

我有一个大文件 A(由电子邮件组成),每封邮件一行。我还有另一个文件 B,其中包含另一组邮件。

我将使用哪个命令从文件 A 中删除文件 B 中出现的所有地址。

所以,如果文件 A 包含:

A
B
C

文件 B 包含:

B    
D
E

那么文件A应该留下:

A
C

现在我知道这个问题可能被问得更频繁,但我只找到了 one command online这给了我一个错误的分隔符。

任何帮助将不胜感激!肯定有人会想出一个聪明的单线,但我不是 shell 专家。

最佳答案

如果文件已排序(它们在您的示例中):

comm -23 file1 file2

-23 抑制两个文件中的行,或仅在文件 2 中。如果文件未排序,请先通过 sort 管道...

见 man page here

https://stackoverflow.com/questions/4366533/

相关文章:

python - 自定义类型的对象作为字典键

Python Infinity - 有什么注意事项吗?

python - 编码/解码有什么区别?

linux - 如何强制从另一个 SSH session 中分离 screen ?

linux - 如何提取 rpm 的内容?

linux - 使用 tar、gz、zip 或 bzip2 拆分文件

python - ValueError : The truth value of an array

python - 如何删除numpy数组中的特定元素

linux - 使用 Bash 自动将最后一个命令的输出捕获到变量中?

linux - 比较 bash 中的整数,需要一元运算符