comm 没有证明预期结果

comm 没有证明预期结果

我有几个文件(文件1.txt文件2.txt)并且我正在使用 unix“comm”命令来比较这些文件以找出 file1.txt 上的唯一行

以下是 file1.txt 中的行:

OD1
EN2
OD3
OD4
OD5
EN6
EN7
EN8
EN9
OD10
OD11
OD12

以下是 file2.txt 中的行:

EN1
EN2
EN3
OD4
OD5
EN6
EN7
EN8
EN9
OD10

我使用的命令为:

comm -23 file1.txt file2.txt

实际的

结果是:

OD1 
OD10
OD11
OD12
OD3

期待

我期待着:

OD1 
OD11
OD12
OD3

您能帮助一下如何获得预期的结果吗?

答案1

文件必须按词法排序,否则comm将不起作用。

将它们按顺序排序并重试。

或者使用:

comm -23 <(sort file1.txt) <(sort file2.txt)  

答案2

使用

sdiff -s file1.txt file2.txt | awk '{print $1}' | sort -u

输出是

OD1                                                                                                                                                                      
OD11                                                                                                                                                                     
OD12                                                                                                                                                                     
OD3   

相关内容