我有两个类似的“表格格式”文本文件,每个文件都有几百万条记录。在 inputfile1 中,唯一标识符是其他两列中的值的合并(它们本身都不是唯一标识符)。在 inputfile2 中,唯一标识符是两个字母后跟一个随机的四位数字。
如何将 inputfile1 中的唯一标识符替换为 inputfile2 中相应的唯一标识符?第一个表中的所有记录都存在于第二个表中,但反之则不然。以下是文件的玩具示例。
输入文件 1:
Grp Len ident data
A 20 A_20 3k3bj52
A 102 A_102 3k32rf2
A 352 A_352 3w3bj52
B 60 B_60 3k3qwrg
B 42 B_42 3kerj52
C 89 C_89 3kftj55
C 445 C_445 fy5763b
输入文件 2:
Grp Len ident
A 20 fz2525
A 102 fz5367
A 352 fz4678
A 356 fz1543
B 60 fz5732
B 11 fz2121
B 42 fz3563
C 89 fz8744
C 245 fz2653
C 445 fz2985
C 536 fz8983
期望的输出:
Grp Len ident data
A 20 fz2525 3k3bj52
A 102 fz5367 3k32rf2
A 352 fz4678 3w3bj52
B 60 fz5732 3k3qwrg
B 42 fz3563 3kerj52
C 89 fz8744 3kftj55
C 445 fz2985 fy5763b
我的临时计划是:
- 以 input1 的样式为 input2 生成额外的标识符(简单)
- 从 input2 中过滤掉不出现 input1 的行(hardish)
- 然后粘贴来自 input1 的数据(简单)
我也许可以在 R 中做到这一点,但数据又大又复杂,我想知道 bash 或 perl 中是否有办法。任何正确方向的提示都会很好。