2014-09-12 44 views
-2

比較2個文件,我們正在尋找鍵列 「名」在UNIX的鍵列

文件1

id|name|age|sal 

1|AAA|30|2000 

2|BBB|40|3000 

4|CVC|32|2000 

5|DDD|25|2000 

文件2是

name 

FFF 

GGG 

AAA 

DDD 

RRR 

輸出將作爲

文件3(Maching)

id|name|age|sal 

1|AAA|30|2000 

5|DDD|25|2000 

文件4(不MACHING)

id|name|age|sal 

2|BBB|40|3000 

4|CVC|32|2000 

請使用Unix的

感謝您的幫助,給我的輸出。

+0

的可能重複的[查找兩個文件之間的相似性(http://stackoverflow.com/questions/17028128/find-the-similarities-between-two-files) – fedorqui 2014-09-12 13:03:55

回答

-1

您可以使用AWK篩選對此

$ awk 'FNR==NR{a[$1];next}($1 in a){++a[$1]} 
     END{for(i in a){print i" "a[i]}}' file1.txt 1.txt 2.txt 
    put 1 
    get 1 
    move 2 

其中:

  • 處理file1.txtFNR==NR{a[$1];next}:,我們紀念在關聯數組a
    occurence的$1
  • ($1 in a){++a[$1]}:處理1.txt2.txt時,我們檢查 如果$1是存在於關聯數組a,如果是的話,由1
  • 增加 計數最後,遍歷關聯數組a,打印鍵(第一 場在文件中)及其值(1.txt2.txt中的出現次數)。

參見: https://unix.stackexchange.com/questions/125762/compare-first-column-in-different-files

+0

不要複製粘貼從其他網站的答案,甚至不提及:http://unix.stackexchange.com/a/125768/注意:最後的鏈接添加後,我的評論。您應該閱讀http://stackoverflow.com/help/referencing – fedorqui 2014-09-12 13:17:23