从两个不同的文件中排除重复的行并生成新的?

我有几个wordlist文件是基于每行的单词。

现在,我想生成新的文件,应该是:

比较第一个和第二个文件,把第二个文件中没有的文件放在第三个文件中。

File_1

字1

WORD2

WORD3

word4

的word5

File_2

字1

WORD3

的word5

word7

word9

我尝试了几件事情:

cat file.1 file.2 | sort -n | uniq -u | cat > file.3 

但是我得到:

File_3

WORD2

word4

word7

word9

另外我试过:

 cat file.1 file.2 | sort -n | uniq -d | cat > file.3 

但是我又得到:

File_3

字1

WORD3

的word5

我也尝试了ECHO

 echo $(cat file.{1,2} | sort -n | uniq -u) > file.3 

但是我得到了同样的文字,最糟糕的是它打印在一行上。

最终的File_3应该包含:

word7

word9

因为在第一个文件中找不到这些单词。

任何想法如何做到这一点?

如果你的文件不大,你可以基本上先捕获两次文件:

 cat file.1 file.1 file.2 | sort -n | uniq -u | cat > file.3 

但是这对于大文件来说是很昂贵的。

或者使用grep你可以实现这个(感谢@tripleee):

 grep -F -x -v -f file.1 file.2 > file.3 

尝试这个。

 grep -F -x -v -f file.1 file.2 >file.3 

也许使用awk:

 $ awk 'NR==FNR{a[$0];next}!($0 in a)' file_1 file_2 > file_3 $ cat file_3 word7 word9 

你可以使用通讯程序来做到这一点:

 comm -13 <(sort file_1) <(sort file_2)