2016-04-07 16 views
0

第1列を第2列と比較し、シェルスクリプトの第2列でuniqでない値を取り出す。第1列と第2列を比較し、シェルスクリプトの第2列でuniqでない値を取り出す

サンプル入力:

58811051802414,50064179170,0000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

58811051802414,50064179170,0000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

70128031244580,50064178465,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

70128031244580,50064178255,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

所望の出力:

58811051802414,50064179170,0000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

70128031244580,50064178465,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

70128031244580,50064178255,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

我々はUNIQ場合、UNIQ、第1列の値を参照し、同じファイルの2番目の列と比較する必要があります値を表示するには、重複を省略してuniq値だけを出力する必要があります。

第2変更。

70128031244580,50064178465,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

70128031244580,50064178255,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

これら二つの最初の列は、我々が救助に

70128031244580,Found 2 different values. 

答えて

0

awkとしてこれを印刷する必要が異なる第二の列を持っています!

$ awk -F, '!a[$1,$2]++' file 

58811051802414,50064179170,0000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 
70128031244580,50064178465,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 
70128031244580,50064178255,1000,TEREAE,20160630,TESTIIII,,,,20130628T04:30:06 

二スクリプトにこの配管

$ awk -F, '!a[$1,$2]++' file | 
    awk -F, '{a[$1]++} END{for(k in a) if(a[k]>1) print k, "Found " a[k] " values"}' 

70128031244580 Found 2 values 
関連する問題