bash:比较两个文件的行

Ell*_*nce 14 bash

我有两个文本文件,包含一个唯一的排序单词列表:

档案1:

a
b
c
d
Run Code Online (Sandbox Code Playgroud)

文件2:

b
c
Run Code Online (Sandbox Code Playgroud)

我需要一个仅包含文件1中无关行的新文件,因此结果将是

a
d
Run Code Online (Sandbox Code Playgroud)

koj*_*iro 17

comm是为了什么:

comm - 选择或拒绝两个文件共有的行

你要

comm -23 "File 1" "File 2"
Run Code Online (Sandbox Code Playgroud)

这将抑制文件2中输出和两个文件中的行,只留下文件1中的行. 更多答案在Greg Wooledge的维基上


Rub*_*ens 5

您可以使用grep

grep -f file1.txt -vFx file2.txt
Run Code Online (Sandbox Code Playgroud)

请注意标志F, --fixed-strings和的用法x, --line-regexp,以考虑整行来强制执行比较。

  • 谢谢,这也可以:`sort file1.txt file2.txt file2.txt | uniq -u` (2认同)