gpt4 book ai didi

linux - 匹配 csv 中的列并合并

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:01 25 4
gpt4 key购买 nike

我有两个 csv 文件 a.csv 和 b.csv。例如,a.csv 中的第五列和 b.csv 中的第三列都有值

a.csv
1,2,3,4,5

b.csv
7,6,5,9

如果 a 中第五列的值和 b 中第三列的值与生成的 csv 匹配,则必须

result.csv    
1,2,3,4,5,7,6,9

如何实现这一目标?请帮忙

最佳答案

假设两个文件具有相同的行数,并且您尝试从两个文件中检查相同的行号。 (即检查 a.csv 中的第三行与 b.csv 中的第三行),这可以工作:

awk -F, -v OFS="," 'NR==FNR{a[NR]=$3;w[NR]=$1 FS $2 FS $4;next}
a[FNR]==$5{print $0, w[FNR]}' b a

示例:

kent$  head a b
==> a <==
1,2,3,4,5
1,2,3,4,7
1,2,3,4,8

==> b <==
7,6,5,9
7,6,x,9
7,6,8,9

kent$ awk -F, -v OFS="," 'NR==FNR{a[NR]=$3;w[NR]=$1 FS $2 FS $4;next}a[FNR]==$5{print $0, w[FNR]}' b a
1,2,3,4,5,7,6,9
1,2,3,4,8,7,6,9

请注意,如果这不是您要查找的内容,请澄清您的要求,答案将被更新(或删除)

关于linux - 匹配 csv 中的列并合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26632858/

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