【发布时间】:2019-09-12 04:38:50
【问题描述】:
我正在尝试匹配两张桌子上的第 3 列和第 2 列。在下面的示例中,我需要从第二个表中获取 PROGRAM 并使用 `AWK.两个表的共同点是 TESTER。
下面是我的代码,不工作。请帮忙修复
awk -F, 'NR==FNR{a[$1]=$8;next;}{print $0,a[$3]?a[$2]:"N/A"}' OFS=, table1 table2
Table1:
Date Time TESTER Niche SMS_NO TEST_AREA SCREEN_TYPE PROGRAM
4/23/2019 8:40:42 A1 Nxx S11 TA1 ST1 PGM1
4/23/2019 7:34:08 B1 Nx1 S21 TA2 ST2 PGM2
4/23/2019 3:16:24 C1 Nx2 S31 TA3 ST3 PGM3
4/23/2019 6:22:04 D1 Nx3 S41 TA4 ST4 PGM4
4/23/2019 8:55:19 E1 Nx4 S51 TA5 ST5 PGM5
7/22/2018 17:30:37 F1 Nx5 S61 TA6 ST6 PGM6
Table2:
FEATURE TESTER LICENSE_USED
FEA1 A1 4
FEA2 B1 16
FEA3 C1 16
FEA4 D1 16
FEA5 E1 16
FEA6 F1 16
FEA7 G1 16
FEA8 G2 16
Expected output:
FEATURE TESTER LICENSE_USED PROGRAM
FEA1 A1 4 PGM1
FEA2 B1 16 PGM2
FEA3 C1 16 PGM3
FEA4 D1 16 PGM4
FEA5 E1 16 PGM5
FEA6 F1 16 PGM6
FEA7 G1 16 N/A
FEA8 G2 16 N/A
【问题讨论】:
-
你的FS是逗号还是空格?您的代码和示例输入和输出显示不同的值。
-
嗨@acs005 FS 是','我刚刚粘贴在xls 中,所以它删除了','。两个表之间的共同点是 TESTER,我想从 table1 中获取使用的 PROGRAM 并显示 table2 的内容 + 使用的程序
标签: awk