如何从 100 个文件中求和 - bash/awk?
How to sum from 100 file - bash/awk?
我需要对 100 个文件的值求和。这是我输入的一部分
suma_wiazan_wodorowych_2_1.txt
2536
1928
1830
1774
1732
1673
1620
suma_wiazan_wodorowych_2_101.txt(每个文件的名称更改 100,因此 1、101、201 等)
2535
1987
1895
1829
1805
1714
1657
所以我的脚本应该将第一个文件的第一行从第二个文件的第一行添加....到一百
2535+2536+..+..+2621
并针对第二个文件的第一行和第二行的第二行等。
每个文件的长度是 5000 行(所以我将有 5000 个总和)
你有什么想法吗?
使用paste
和bc
的单行
paste -d + suma_wiazan_wodorowych_2_* | bc
假设这些行仅包含没有前导 +
的裸数字(负数,即具有单个前导 -
的数字是可以的),并且文件具有相同的行数.
和awk
$ awk '{sum[FNR]+=} END{for(i=1;i<=FNR;i++) print sum[i]}' file*
对所有输入文件的所有对应值求和,最后打印。
我需要对 100 个文件的值求和。这是我输入的一部分 suma_wiazan_wodorowych_2_1.txt
2536
1928
1830
1774
1732
1673
1620
suma_wiazan_wodorowych_2_101.txt(每个文件的名称更改 100,因此 1、101、201 等)
2535
1987
1895
1829
1805
1714
1657
所以我的脚本应该将第一个文件的第一行从第二个文件的第一行添加....到一百 2535+2536+..+..+2621 并针对第二个文件的第一行和第二行的第二行等。 每个文件的长度是 5000 行(所以我将有 5000 个总和) 你有什么想法吗?
使用paste
和bc
paste -d + suma_wiazan_wodorowych_2_* | bc
假设这些行仅包含没有前导 +
的裸数字(负数,即具有单个前导 -
的数字是可以的),并且文件具有相同的行数.
和awk
$ awk '{sum[FNR]+=} END{for(i=1;i<=FNR;i++) print sum[i]}' file*
对所有输入文件的所有对应值求和,最后打印。