gpt4 book ai didi

awk - 使用 awk 对多个文件中的同一列求和?

转载 作者:行者123 更新时间:2023-12-02 04:52:25 24 4
gpt4 key购买 nike

我想添加 5 个文件的第 3 列,这样新文件将具有相同的第 2 列和 5 个文件的第 3 列之和。

我试过这样的:

$ cat freqdat044.dat | awk '{n=$3; getline <"freqdat046.dat";print $2" " n+$3}' > freqtrial1.dat 

freqdat048.dat`enter code here`$ cat freqdat044.dat | awk '{n=$3; getline <"freqdat046.dat";print $2" " n+$3}' > freqtrial1.dat

文件名:

freqdat044.dat
freqdat045.dat
freqdat046.dat
freqdat047.dat
freqdat049.dat
freqdat050.dat

并保存在输出文件中,仅包含 $2 和新的 col 形成第三个的总和

最佳答案

awk '{x[$2] += $3} END {for(y in x) print y,x[y]}' freqdat044.dat freqdat045.dat freqdat046.dat freqdat047.dat freqdat049.dat freqdat050.dat

这不一定会打印第一个文件中出现的行。如果您想保留该排序,则必须将该排序保存在某处:

awk 'FNR==NR {keys[FNR]=$2; cnt=FNR} {x[$2] += $3} END {for(i=1; i<=cnt; ++i) print keys[i],x[keys[i]]}' freqdat044.dat freqdat045.dat freqdat046.dat freqdat047.dat freqdat049.dat freqdat050.dat

关于awk - 使用 awk 对多个文件中的同一列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18600264/

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