我有兩個文件,比如像:如何巧妙地將兩個文件與唯一鍵合併?
文件1:
A,Content1
B,Content2
C,Content3
文件2:
D,Content4
E,Content5
B,Content6
有一個在文件1和文件2相同的密鑰,我可以巧妙的是,合併兩個文件結果文件如下:
A,Content1
B,Content2
C,Content3
D,Content4
F,Content5
我有兩個文件,比如像:如何巧妙地將兩個文件與唯一鍵合併?
文件1:
A,Content1
B,Content2
C,Content3
文件2:
D,Content4
E,Content5
B,Content6
有一個在文件1和文件2相同的密鑰,我可以巧妙的是,合併兩個文件結果文件如下:
A,Content1
B,Content2
C,Content3
D,Content4
F,Content5
如果您的文件不是太多bi克(這是我會從你的shell的用法假設):
#!/bin/bash
keys=$(cat "[email protected]" | cut -d',' -f1 | sort -u)
for key in $keys
do
grep -h $key "[email protected]" | head -1
done
基本上是:
提取密鑰(的東西,是第一個逗號之前)
發現該文件中第一次出現該密鑰(即頭-1)
您應該能夠與單一sort
實現這一點:
sort -t',' -k1,1 -u file1 file2
它設置字段分隔符逗號,排序和上進行重複數據刪除僅第一個字段。
請注意,訂單很重要。如果OP希望'file2'中的列獲勝,則該命令應該交換到'-u file2 file1' – bishop
只需幾點提示,當''空格出現時,使用''$'''覆蓋'$ *'來保留分組。另外,'$(echo $ keys)'可以用'$ keys'替換。 –