我有两个包含表格数据的变量。现在,var1有一个字段已损坏。所以我需要通过将其映射到另一个保存其映射的变量来纠正它。
此处var1
第二列已损坏。
var2
中存在从损坏中恢复的映射。
现在我需要从var2中检查var1的column2的正确值,并将其替换为结果。
var1的内容:
NODE 080e4441a6 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 18628c2a24 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 35c0ae9c35 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 5c9dc20a1a 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 7881cdedf6 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 79587f053e 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 859384e0cd 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 8d996c83fe 1 BLA ENABLED BLA1 BLA2 WORKING
NODE 9a0fbe4290 1 BLA ENABLED BLA1 BLA2 WORKING
NODE XXX-19 1 BLA ENABLED BLA1 BLA2 WORKING
NODE YYY-20 2 BLA ENABLED BLA1 BLA2 WORKING
NODE bb2839f328 1 BLA ENABLED BLA1 BLA2 WORKING
NODE e0e440c477 1 BLA ENABLED BLA1 BLA2 WORKING
NODE ef21a2de3e 1 BLA ENABLED BLA1 BLA2 WORKING
Var2的内容:
18628c2a24 AREA-26
e0e440c477 AREA-21
YYY-20 YYY-20
XXX-19 XXX-19
8d996c83fe AREA-24
bb2839f328 AREA-22
9a0fbe4290 AREA-23
35c0ae9c35 AREA-25
ef21a2de3e AREA-27
7881cdedf6 AREA-32
080e4441a6 AREA-28
79587f053e AREA-30
5c9dc20a1a AREA-31
859384e0cd AREA-29
期望的结果:
NODE AREA-28 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-26 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-25 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-31 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-32 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-30 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-29 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-24 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-23 1 BLA ENABLED BLA1 BLA2 WORKING
NODE XXX-19 1 BLA ENABLED BLA1 BLA2 WORKING
NODE YYY-20 2 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-22 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-21 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-27 1 BLA ENABLED BLA1 BLA2 WORKING
我尝试了类似的东西:但没有帮助。
awk 'NR==FNR{a[$1]=$2;next} ($2 in a){ gsub($2,$1)}1' <(echo "$var1") <(echo "$var2")
答案 0 :(得分:2)
你非常接近,试试
output/host
请注意变量的传递顺序。
答案 1 :(得分:1)
加入 + 排序 命令方法:
join -1 2 -2 1 -o1.1,2.2,1.3,1.4,1.5,1.6,1.7,1.8 <(sort -k2 <<< "$var1") <(sort -k1 <<< "$var2")
输出:
NODE AREA-28 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-26 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-25 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-31 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-32 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-30 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-29 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-24 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-23 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-22 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-21 1 BLA ENABLED BLA1 BLA2 WORKING
NODE AREA-27 1 BLA ENABLED BLA1 BLA2 WORKING
NODE XXX-19 1 BLA ENABLED BLA1 BLA2 WORKING
NODE YYY-20 2 BLA ENABLED BLA1 BLA2 WORKING
详细:
sort -k2 <<< "$var1"
- 按第二个字段排序$var1
个内容
sort -k1 <<< "$var2"
- 按第一个字段排序$var2
个内容
-1 2
- 加入 file1的第二个字段(var1
)
-2 1
- 加入 file2的第一个字段(var2
)