使用键 -> 值结构合并两个文件

fla*_*nka 0 bash shell awk grep sed

我正在寻找想法,而不是 shell(linux) 中下一个问题的完整解决方案。最好的解决方案是什么?(awk、while 循环、sed ....)

我有两个具有相同行结构的文件:key-value-value. 我想合并这两个文件。如果该值不存在,脚本将插入一个新行。如果存在,脚本会更新这些值(通过将它们相加)。

Example:
File 1:

john-15-40
doo-10-91
mary-14-19
foo-11-0

File 2:

foo-110-10
john-22-11
ghost-1000-1000

Result:
foo-121-10
john-37-51
ghost-1000-1000
doo-10-91
mary-14-19
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

gle*_*man 5

用awk简单

awk '
  BEGIN {FS = OFS = "-"}
  {v1[$1] += $2; v2[$1] += $3}
  END {for (key in v1) {print key, v1[key], v2[key]}}
' F1 F2
Run Code Online (Sandbox Code Playgroud)