- 论坛徽章:
- 0
|
本帖最后由 Looiml 于 2020-02-26 11:54 编辑
先生成个测试数据:
- $ for i in {A..Z};do echo $i {1..100}; done>c.txt
复制代码
假定每一行都是取的相同随机列参与求和:cat test.awk
- BEGIN{
- N=100
- C=20
- #generate the sequential array
- for(i=1;i<=N;i++)a[i]=i
- #shuffle the array
- srand()
- for(i=1;i<=N;i++){
- ri=int(rand()*N)
- t=a[i]
- a[i]=a[ri]
- a[ri]=t
- }
- }
- NF>=C{
- printf $1" "
- #summarize C columns each time until no more C coulumns available
- for(i=1;i+C<=N+1;i+=20){
- sum=0
- for(j=0;j<C;j++)sum+=$a[i+j]
- printf("%d ",sum)
- }
- print ""
- }
复制代码 得到结果:awk -f test.awk c.txt
- A 1118 958 844 960 1070
- B 1118 958 844 960 1070
- C 1118 958 844 960 1070
- D 1118 958 844 960 1070
- E 1118 958 844 960 1070
- F 1118 958 844 960 1070
- G 1118 958 844 960 1070
- H 1118 958 844 960 1070
- I 1118 958 844 960 1070
- J 1118 958 844 960 1070
- K 1118 958 844 960 1070
- L 1118 958 844 960 1070
- M 1118 958 844 960 1070
- N 1118 958 844 960 1070
- O 1118 958 844 960 1070
- P 1118 958 844 960 1070
- Q 1118 958 844 960 1070
- R 1118 958 844 960 1070
- S 1118 958 844 960 1070
- T 1118 958 844 960 1070
- U 1118 958 844 960 1070
- V 1118 958 844 960 1070
- W 1118 958 844 960 1070
- X 1118 958 844 960 1070
- Y 1118 958 844 960 1070
- Z 1118 958 844 960 1070
复制代码
|
|