Text-Processing

comm 沒有證明預期的結果

  • July 13, 2017

我有幾個文件(文件 1.txtfile2.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

你能幫助如何獲得預期的結果嗎?

文件必須按詞法排序,否則comm將不起作用。

將它們按順序排序,然後重試。

或使用:

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

採用

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

輸出是

OD1                                                                                                                                                                      
OD11                                                                                                                                                                     
OD12                                                                                                                                                                     
OD3   

引用自:https://unix.stackexchange.com/questions/377688