根据唯一 ID 在每条记录的末尾插入值

根据唯一 ID 在每条记录的末尾插入值

我有 2 个文件,一个带分隔符,另一个是位置文件。

这两个文件共享相同的唯一 ID,如下所示,但两个文件包含不同的信息。

del.txt

11111|abc|01|||||||||

22222|xyz|09|||||||||

pos.txt

11111  abc newyork US 

22222  xyz dallas  US

del.txt 文件由唯一的成员 ID 组成,后跟名称和备用 ID,以 | 分隔。 (分隔)和类似的 pos.txt 具有唯一的 ID 和名称,但位置格式中的替代 id 除外。

仅当两个文件中的唯一会员 ID 匹配时,我才想在 pos.txt 中插入备用 ID,如下所示

pos.txt

11111  abc newyork US 01

22222  xyz  dallas US 09

我们如何使用 shell 脚本来实现这一点?

答案1

对于这个问题,我认为最好的方法是使用awk

$ awk -F'[ |]' 'FNR==NR{a[$1]=$3;next}($1 in a){print $0" "a[$1]}' del.txt pos.txt 
11111  abc newyork US 01

22222  xyz dallas  US 09

相关内容