您能帮我满足以下要求吗?
我有两个文件 FILE1 和 FILE2,其内容如下(示例):
文件1:
Column1 Column2
------------------------
M 1.2
A 11
S hostname
T TCP
E 120
R Y
文件2:
Column1 Column2
---------------------------
A 12
M 1.3
T SSL
S hostname1
FILE1和FILE2中的字段顺序不同,我想比较FILE1和FILE2,从FILE1中取出第一列并搜索FILE2的整个column1,一旦找到匹配,它必须选择column2值(来自FILE2)并替换FILE1 中相应字段的值。
如果有人可以帮助我的要求,我将不胜感激。
答案1
你可以这样做:
$ join -o 0,1.2,2.2 -a 1 <(sort -k 1,1 FILE1) <(sort -k 1,1 FILE2) |
awk '{print $1, $NF}'
A 12
E 120
M 1.3
R Y
S hostname1
T SSL
或者保留以下行的顺序FILE1
:
$ awk '!n {a[$1] = $2; next}
{print $1, $1 in a ? a[$1] : $2}' FILE2 n=1 FILE1
M 1.3
A 12
S hostname1
T SSL
E 120
R Y