gpt4 book ai didi

c++ - 在列中添加连续条目

转载 作者:行者123 更新时间:2023-11-30 02:46:10 26 4
gpt4 key购买 nike

我有一个具有以下格式的文件

   0.99987799      17743.000    
1.9996300 75.000000
2.9993899 75.000000
3.9991500 102.00000
4.9988999 131.00000
5.9986601 130.00000
6.9984102 152.00000
7.9981699 211.00000
8.9979200 256.00000
9.9976797 259.00000
10.997400 341.00000
11.997200 373.00000

我想做的是在第二列中每四行添加一次数据。所以期望的输出是

1 17743+75+75+102
2 131+130+52+211
3 256+259+341+373

这在 awk 中如何完成?

我知道我可以使用以下命令在文件中找到特定元素

awk 'FNR == 5 {print $2}' file

但我不知道如何连续添加 4 个元素。例如,如果我尝试

awk '$2 {print FNR == 5}' file

我只得到零,所以我不知道如何先解析列再解析行。我也试过了

awk 'BEGIN{i=4}
{
for (NR>=1 || NR<=i)
{
print $2
}
}' filename

但我在 NR<=i 处收到语法错误.我也不知道如何循环整个文件。任何帮助或想法都将非常受欢迎!或者在 C++ 中做会更好吗? ?不知道哪个更方便...

我也试过

awk 'BEGIN{sum=0} {{sum += $2} if(FNR%4 == 0) { print sum; sum=0}}' infile.dat

但是好像不能正常工作...

最佳答案

awk 'NR%4==1{sum=$2; next}{sum+=$2} NR%4==0{print ++j,sum;}' input.txt

输出:

1 17995
2 624
3 1229

对于组的第一个数字,它将第二列的值存储在 $2 中,对于接下来的 3 行,将第二列的值和 sum 相加。对于组的最后一行 NR%4==0 打印结果。

如果您不需要求和结果前的行号,只需删除 ++j,

关于c++ - 在列中添加连续条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23802805/

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