Shell-Script
合併兩個文本並比較行,如果某些列相似,則選擇一個文本的行
我有兩個不同的文件,其中兩個數據的某些行測量相同的東西。我想要一個合併的輸出,這樣 File1 的行將是輸出行,其中行測量相同的事物(file1 的第二行和 file2 的第一行測量相同的事物。我希望在 column1 和 column2 時有 file1 的第一行的文件是相似的。)
…文件1:
1257, OBM , 47, 106, 1330 1257, IRK , 52, 104, 467
….
文件2:
1257, IRK , 50, 100, 400 1000, CTK , 47, 106, 1330
….
輸出:
1257, OBM , 47, 106, 1330 1257, IRK , 52, 104, 467 1000, CTK , 47, 106, 1330
….
使用
awk
:awk -F',' '!seen[$1,$2]++' file1 file2
解釋:
- 一開始,鍵為欄位的數組項
$1,$2
未分配,因此為假。- 如果它為假,
!seen
則為真,所以我們增加它(使其為真)並執行預設操作,即- 如果為真(我們第二次看到相同的欄位)
!seen
為假,awk
將跳過該行。