如何从另一个txt文件中存在的txt文件中删除单词?

Kat*_*sia 8 text-processing

文件a.txt大约有 10 万个字,每个字都换行

july.cpp
windows.exe
ttm.rar
document.zip
Run Code Online (Sandbox Code Playgroud)

Fileb.txt有 150k 字,一个字一个字 - 有些字来自 file a.txt,但有些字是新的:

july.cpp    
NOVEMBER.txt    
windows.exe    
ttm.rar    
document.zip    
diary.txt
Run Code Online (Sandbox Code Playgroud)

如何将这些文件合并为一个,删除所有重复的行,并保留新的行(存在于 中a.txt但不存在于 中的行b.txt,反之亦然)?

小智 13

有一个命令可以执行此操作:comm. 如 中所述man comm,这很简单:

   comm -3 file1 file2
          Print lines in file1 not in file2, and vice versa.
Run Code Online (Sandbox Code Playgroud)

请注意,comm需要对文件内容进行排序,因此您必须在调用它们之前comm对它们进行排序,就像这样:

sort unsorted-file.txt > sorted-file.txt
Run Code Online (Sandbox Code Playgroud)

所以总结一下:

sort a.txt > as.txt

sort b.txt > bs.txt

comm -3 as.txt bs.txt > result.txt
Run Code Online (Sandbox Code Playgroud)

执行上述命令后,您将在result.txt文件中看到预期的行。