2012-02-08 46 views
1

是否有一個簡單的unix命令集,我可以使用它將兩個列表分成三個列表,這兩個列表由兩個列表之間的共同線組成,第一個列是唯一的行,最後一列是唯一的列?這些清單將是未排序的,每一行都是唯一的。Unix命令將兩個列表分隔爲三個:兩者之間通用,每個都獨有?

例如: 表1: 貓 帽子 箱

表2: 箱 狗 岩石

輸出:框,貓帽子,狗岩石

+0

差異將是一個好的開始。 – 2012-02-08 17:56:53

回答

1
cat file1 
box 
cat 
hat 

cat file2 
box 
dog 
rock 

comm file1 file 
       box 
cat 
    dog 
hat 
    rock 

輸出是基於列的,列僅在第一個文件中是數據,第二列是僅在第二個文件中的數據,第三列是兩者共同的值。

請注意,數據排序爲

如果你正在使用bash,你可以做這樣的事情

comm <(sort file1) <(sort file2) 

到即暫時對文件進行排序。

通過參數傳遞給comm-1 -2你可以禁止1 and 2列的輸出,當然-3的本身就elimate第3列(在常見的單詞),只留下話並不常見。

我希望這會有所幫助。

+0

如果您需要將結果恢復爲原始順序,請爲每個標記添加一個後綴,如cat:2 hat:2 box:3。 – tripleee 2012-02-08 18:38:14

相關問題