如何巧妙地将两个文件与唯一键合并?

时间:2017-02-23 06:52:18

标签: shell

我有两个文件,例如:

File1中:

A,Content1
B,Content2
C,Content3

文件2:

D,Content4
E,Content5
B,Content6

file1和file2中有相同的密钥,我可以巧妙地合并两个文件,结果文件就是:

A,Content1
B,Content2
C,Content3
D,Content4
F,Content5

2 个答案:

答案 0 :(得分:1)

您应该可以使用一个sort完成此操作:

sort -t',' -k1,1 -u file1 file2

它将字段分隔符设置为逗号,仅对第一个字段进行排序和重复数据删除。

答案 1 :(得分:0)

如果您的文件不是太大(这是我从您使用的shellcript中假设的那样):

#!/bin/bash
keys=$(cat "$@" | cut -d',' -f1 | sort -u)
for key in $keys
do
  grep -h $key "$@" | head -1
done

基本上:

  • 提取密钥(第一个逗号之前的内容)

  • 在文件中找到该键的第一个匹配项(头部为-1)