gpt4 book ai didi

awk - 合并某些列匹配的文件

转载 作者:行者123 更新时间:2023-12-02 16:59:20 26 4
gpt4 key购买 nike

匹配两个文件中的第 1、2、3 列,如果它们相等。

对于列匹配的文件,将文件 1 中第 4 列的值写入文件 2如果不匹配则写NA

文件1

31431 37150 100 10100
31431 37201 100 12100
31431 37471 100 14100

文件2

31431 37150 100 14100
31431 37131 100 14100
31431 37201 100 14100
31431 37478 100 14100
31431 37471 100 14100

期望的输出:

31431 37150 100 14100 10100
31431 37131 100 14100 NA
31431 37201 100 14100 12100
31431 37478 100 14100 NA
31431 37471 100 14100 14100

我试过了

awk '
FNR==NR{
a[$1 $2 $3]=$4
next
}
($1 in a){
$1=a[$1]
found=1
}
{
$0=found==1?$0",":$0",NA"
sub(/^...../,"&,")
$1=$1
found=""
}
1
' FS=" " file1 FS=" " OFS="," file2

最佳答案

$ awk '      {k=$1 FS $2 FS $3} 
NR==FNR {a[k]=$4; next}
{$(NF+1)=k in a?a[k]:"NA"}1' file1 file2

31431 37150 100 14100 10100
31431 37131 100 14100 NA
31431 37201 100 14100 12100
31431 37478 100 14100 NA
31431 37471 100 14100 14100

关于awk - 合并某些列匹配的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com