使用 AWK 进行查找 Table 并将第一个文件的第一列替换为第二个文件的另一列

using AWK for Lookup Table and Replace first column of 1st file with another column of 2nd file

我正在尝试使用 shell 中的 AWK 命令进行查找 table 以将列替换为与第一个文件匹配的另一个列值。

awk 'FNR==NR{a[]=,a[]=;next}{print a{],a[]}' file1.txt file2.txt

我没有取得任何成功。请帮助我使用 AWK 命令语法,这将给我所需的输出结果。

File1.txt

VALUE_TCP21:Z9E1AG.PNT          ABC1        SILVER
VALUE_TCP21:Z9E1CU.PNT          ABC1        COPPER
VALUE_TCP21:Z9E1RH.PNT          ABC1        HUMIDITY
VALUE_TCP21:Z9E1TT001.PNT       ABC1        TEMP

File2.txt

VALUE_TCP21:Z9E1AG.PNT    3716.09
VALUE_TCP21:Z9E1CU.PNT    4015.55
VALUE_TCP21:Z9E1RH.PNT    54.4023
VALUE_TCP21:Z9E1TT001.PNT 24.9414

期望的输出:

 ABC1  SILVER     3716.09
 ABC1  COPPER     4015.55
 ABC1  HUMIDITY   54.4023
 ABC1  TEMP       24.9414
awk 'FNR==NR{a[]= OFS ;next}{print a[],}' File1.txt File2.txt | column -t

简要说明,

  • FNR==NR{a[]= OFS ;next}:在file1.txt中,赋值</code>作为key,<code> OFS 作为a中对应的值。
  • 在文件 2 中,只是 print a[],