我一直在编写一个脚本,通过读取 txt 文件的输入来计算行的平均值
示例文本输入文件输入.txt
157361 155687 156158 156830
149610 151824 152353 152027
159195 158490 159030 159243
153222 154227 154578 154390
168761 170078 170044 170107
147166 146477 146735 147678
155745 152142 155141 154140
148860 150040 149223 148246
147239 149693 148144 147990
148045 147987 149466 149535
146945 146206 145681 145852
156559 155188 156274 154962
143169 143798 142753 144045
153814 153320 153732 156621
我正在使用以下 awk 命令:
awk '{sum=0; for(i=0; i<=NF; i++){sum+=$i}; sum/=NF; print sum}' input.txt
我得到 156679 作为 row1 avg 的预期结果:“使用上面的 awk 表达式将空白区域读取为变量”。
cal row1 excpected avg would be :(157361+155687+156158+156830)/4 = 156509
我没有得到预期的输出,平均得到的结果是错误的上述输入文件的预期 abgs
row1 expected avg :156509
row2 expected avg :151454
AWK 中的字段编号从1
而不是来自0
。所以,在你的 for 循环中你需要放入i = 1
Doing:
awk '{sum = 0; for (i = 1; i <= NF; i++) sum += $i; sum /= NF; print sum}' input.txt
我得到了正确的结果:
156509
151454
158990
154104
169748
147014
154292
149092
148266
148758
146171
155746
143441
154372
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)