在另一个文件由列的部分替换文件中的特定专栏中,我有两个输入文件作为需要帮助的Unix
文件1:
ABC:client1:project1
XYZ:client2-aa:project2
DEF:client4:proj
文件2:
client1:W-170:xx
client2-aa:WT-04:yy
client4:L-005A:zz
另外,有效值数组可以像[W,WT]一样硬编码。
输出:
ABC:W:project1
XYZ:WT:project2
因此,基本上,如果file1的第2列与file2中的任何记录的第1列匹配,则将file1中的第2列的一部分替换为file1中的coulmn2。 为了获得这部分,我需要使用“ - ”运算符分割file2中的column2,并将结果与数组匹配以确定有效值。
对于不符合上述标准的记录,它们不应显示在输出中。
我是shell脚本编程新手,非常感谢您的帮助。 我一直因为一两天的努力,并使用
awk -F":" 'NR==FNR{A[$1]=$2;next}$2 in A{$2=A[$2]}1' OFS=":" file2 file1.
但是已经能够代替整列,一直没能得到柱要求工作的一部分。