AWK——用另一个文件中的记录(行)替换文本文件中的字段(元素)值

AWK——用另一个文件中的记录(行)替换文本文件中的字段(元素)值,awk,text-processing,Awk,Text Processing,我有以下两个文本文件: A.txt B.txt 我需要的是像下面这样合并它们(将B.txt中的字段值替换为A.txt中的整个记录,其第一个字段与B.txt中的字段值匹配): $awk'FNR==NR{a[$1]=$0;next}{for(i=1;i 10000000 2.32 2737.373 272782 10000008 2.37 2837.292 239370 10000016 2.4 3028.237 289872 10000018 2.23 3110.227 289872 10000

我有以下两个文本文件:

A.txt

B.txt

我需要的是像下面这样合并它们(将B.txt中的字段值替换为A.txt中的整个记录,其第一个字段与B.txt中的字段值匹配):

$awk'FNR==NR{a[$1]=$0;next}{for(i=1;i
10000000 2.32 2737.373 272782
10000008 2.37 2837.292 239370
10000016 2.4  3028.237 289872
10000018 2.23 3110.227 289872
10000022 2.5  3228.222 289872
10000028 2.66 3325.11  28442
10000016 10000000 10000028
10000008 10000018 10000022
10000016 2.4  3028.237 289872 10000000 2.32 2737.373 272782 10000028 2.66 3325.11  28442
10000008 2.37 2837.292 239370 10000018 2.23 3110.227 289872 10000022 2.5  3228.222 289872
$ awk 'FNR==NR{a[$1]=$0;next} {for (i=1;i<=NF;i++) $i=a[$i]} 1' A.txt B.txt
10000016 2.4  3028.237 289872 10000000 2.32 2737.373 272782 10000028 2.66 3325.11  28442
10000008 2.37 2837.292 239370 10000018 2.23 3110.227 289872 10000022 2.5  3228.222 289872