2017-10-06 120 views

回答

2

使用awk

awk '{arr[$0]++}END{for(i in arr)if(arr[i]==1)print i}' infile 

sort和uniq

$ sort file | uniq -u # -u generates unique entries; -d nonunique 
a,d 
b,d 

測試結果:

$ cat file 
a,b 
a,c 
a,d 
a,b 
a,c 
b,e 
b,f 
b,d 
b,f 
b,e 

$ awk '{arr[$0]++}END{for(i in arr)if(arr[i]==1)print i}' file 
a,d 
b,d 

說明:

  • arr[$0]++$0是當前行/記錄,其被用作陣列鍵,arr是陣列,arr[$0]++持有密鑰的出現的計數,所以每當AWK發現複製鍵,計數將由一個遞增。

  • 所以在結束塊,循環數組,如果count等於1,則打印這樣的數組鍵。

1

最短的一個具有uniq命令:

uniq -u <(sort file) 
  • -u - 僅打印唯一的行

輸出:

a,d 
b,d