[英]Merge two different files using specific columns after a match and add N/A when no match
Time C-ID Room Info N_Range ErrorCodes Stability Position Profile Configuration N-East EAST North
10:29:18 13832216 1Tr1Tr1Tr10 VILNARPN AIN 6 STABLE default 1600 8 LINK R8 1
10:29:18 1498684 1Tr1Tr1Tr11 VILNARPN UAN 6 STABLE default 1600 5030 LINK R8 1
10:29:18 1498684 1Tr1Tr1Tr12 VILNARPN AN 6 STABLE default 1600 5030 LINK R8 1
10:29:18 2492427 1Tr1Tr1Tr13 VILNARPN AN 7 STABLE default 1600 5030 LINK R8 1
10:29:18 1002527 1Tr1Tr1Tr14 TDAT00 AN 6 STABLE default 1600 8 LINK R8 1
10:29:18 1002527 1Tr1Tr1Tr15 TDAT00 UAN 6 STABLE default 1600 8 LINK R8 1
10:29:18 1Tr1Tr1Tr18 TDAT00 AN 5 STABLE default 1600 8 LINK R8 1
10:29:18 1569109 1Tr1Tr1Tr19 RTEDLOJ0 AIN 6 STABLE default 1600 8 LINK R8 1
Number Action Time Repeat Oas Restriction Status Priority
AA_B_43645175 REBUILD 15:29:18 2 OAS NONE PENDING HIGH
AA_B_43652334 REBUILD 10:29:18 0 OAS NONE PENDING LOW
AA_B_43652684 REBUILD 10:29:18 1 OAS NONE PENDING LOW
AA_B_43653840 CHANGED 13:29:18 0 OAS NONE PENDING MEDIUM
AA_B_43667706 REBUILD 10:29:18 2 OAS NONE PENDING LOW
AA_B_43723080 REBUILD 10:29:18 4 OAS NONE PENDING LOW
AA_B_43747934 CHANGED 10:29:18 1 OAS NONE PENDING MEDIUM
AA_B_43766744 REBUILD 10:29:18 0 OAS NONE PENDING LOW
AA_B_43908075 REBUILD 11:29:18 1 OAS NONE PENDING LOW
AA_B_43963533 REBUILD 12:29:18 0 OAS NONE PENDING HIGH
AA_B_43964358 NEW 13:29:18 3 OAS NONE PENDING LOW
AA_B_43964533 REBUILD 14:29:18 0 OAS NONE PENDING MEDIUM
AA_B_43964678 NEW 15:29:18 0 OAS NONE PENDING LOW
如果 File1 的第一列与 File2 的第三列匹配,则打印:
我试过了
awk 'NR==FNR{a[$1,$3];next}{print $2,$3,$6,$7,$2,$3a[$1]?a[$1]:"NA"}'
它甚至没有参加比赛
所以我尝试了
awk -F 'NR==FNR{a[$1,$3];next} ($7,$8) in a' {print $2,$3,$6,$7,$2,$3a[$1]?a[$1]:"NA"}'
但它没有工作一切都被标记为 N/A
所需 Output
C-ID Room ErrorCodes Stability Status Priority
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING MEDIUM
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
#!/usr/bin/awk -f
# syntax ./merge-all.awk File2 File1
BEGIN {
FS=","
OFS=","
lineCount=0
}
# Put File2 records into an array
FNR == NR {
entries[lineCount, "time"]=$3
entries[lineCount]=$7 OFS $8
lineCount+=1
next
}
# Print headers
FNR == 1 {
print $2, $3, $6, $7, entries[0]
next
}
# Print a record for each record in File2 while handling each File1 record
{
matchFound=0
for (i=1; i < lineCount; i++) {
if (entries[i, "time"] == $1) {
print $2, $3, $6, $7, entries[i]
} else {
print $2, $3, $6, $7, "N/A", "N/A"
}
}
}
这里是这个命令的 output:
$ ./merge-all.awk File2 File1 | tr ',' ' ' | column -t
C-ID Room ErrorCodes Stability Status Priority
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE PENDING LOW
13832216 1Tr1Tr1Tr10 6 STABLE PENDING LOW
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE PENDING LOW
13832216 1Tr1Tr1Tr10 6 STABLE PENDING LOW
13832216 1Tr1Tr1Tr10 6 STABLE PENDING MEDIUM
13832216 1Tr1Tr1Tr10 6 STABLE PENDING LOW
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
13832216 1Tr1Tr1Tr10 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr11 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr11 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr11 6 STABLE PENDING MEDIUM
1498684 1Tr1Tr1Tr11 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr11 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr12 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr12 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr12 6 STABLE PENDING MEDIUM
1498684 1Tr1Tr1Tr12 6 STABLE PENDING LOW
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
1498684 1Tr1Tr1Tr12 6 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE PENDING LOW
2492427 1Tr1Tr1Tr13 7 STABLE PENDING LOW
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE PENDING LOW
2492427 1Tr1Tr1Tr13 7 STABLE PENDING LOW
2492427 1Tr1Tr1Tr13 7 STABLE PENDING MEDIUM
2492427 1Tr1Tr1Tr13 7 STABLE PENDING LOW
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
2492427 1Tr1Tr1Tr13 7 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr14 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr14 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr14 6 STABLE PENDING MEDIUM
1002527 1Tr1Tr1Tr14 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr14 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr15 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr15 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr15 6 STABLE PENDING MEDIUM
1002527 1Tr1Tr1Tr15 6 STABLE PENDING LOW
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
1002527 1Tr1Tr1Tr15 6 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE PENDING LOW
null 1Tr1Tr1Tr18 5 STABLE PENDING LOW
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE PENDING LOW
null 1Tr1Tr1Tr18 5 STABLE PENDING LOW
null 1Tr1Tr1Tr18 5 STABLE PENDING MEDIUM
null 1Tr1Tr1Tr18 5 STABLE PENDING LOW
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
null 1Tr1Tr1Tr18 5 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE PENDING MEDIUM
1569109 1Tr1Tr1Tr19 6 STABLE PENDING LOW
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
1569109 1Tr1Tr1Tr19 6 STABLE N/A N/A
请注意,我在缺少C-ID
的数据集中添加了字符串"null"
,因为没有任何值awk
将向左移动所有列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.