linux小白想进行文本内容替换

有两个文件,A, B
想要执行的操作是:当A每一行文件的第一列,第三列和第五列分别于B文件的第二列,第四列和第六列一致时,将B文件的第8列替换为A文件的第七列
初步设想用有for循环的awk命令,但不清楚怎么表示“所属”的逻辑关系,请求帮助!谢谢!

[root@mypy opt]# cat A
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
[root@mypy opt]# cat B
1 1 3 3 5 5 7 8
1 1 3 3 5 5 7 8
[root@mypy opt]# cat test.sh
#!/bin/bash
awk '{print $1,$3,$5}' /opt/A > a.txt
awk '{print $2,$4,$6}' /opt/B > b.txt
test=$(diff a.txt b.txt)
if [ -z $test ];then
awk 'FNR==NR{a[NR]=$8;next}{$7=a[FNR]}1' B A > C
else
exit 0
fi
[root@mypy opt]# cat C
1 2 3 4 5 6 8 8
1 2 3 4 5 6 8 8
最终C文件就是你要的结果

[root@kanq ~]# cat A
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
[root@kanq ~]# cat B
11 1 13 3 15 5 17 18 19
11 1 13 3 15 5 17 18 19
11 1 13 3 15 5 17 18 19
[root@kanq ~]# cat BNew
11 1 13 3 15 5 17 7 19
11 1 13 3 15 5 17 7 19
11 1 13 3 15 5 17 7 19
全使用awk 实现  如下:
awk -v lin=$(cat B|wc -l) '{
if(NR==FNR){
    for(k=1;k<=NF;k++){
        a[FNR-1,k-1]=$k;
    }
    next
}
else{
    for(k=1;k<=NF;k++){
        b[FNR-1,k-1]=$k;
    }
}
if(lin==FNR){
    for(i=0;i<3;i++){
        for(k=0;k<lin;k++){
            if(a[k,i*2]!=b[k,i*2+1]){
                next
            }
        }
    }
    for(i=0;i<lin;i++){

        b[i,7]=a[i,6]
    }

    for (i=0;i<lin;i++){
        for(k=0;k<NF;k++){
            printf b[i,k]
            if (k<NF-1){
                printf" "
            }
        }
        print ""
    }
}
}' A B >BNew