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中的行.如果文件未排序,则首先通过排序管道它们…

man page here

转载注明原文:linux – 如何从另一个文件A中删除文件B上出现的行? - 代码日志