shell - 对制表符分隔文件中的所有 "cells"执行算术运算

标签 shell

我有一个 n 乘 m 的制表符分隔文件(其中 n 是行数,m 是列数)。

我想对文件中存在的值执行数学运算(比如将每列中存在的值加 5,然后除以 12)。

任何一行正则表达式命令或混合的东西....帮助

提前谢谢你。

最佳答案

awk '{
   # add all numbers on a line
   tot=0
   for (i=1;i<=NF;i++) tot+=$i

   # print detail
   print "LineNo=" NR "\ttot="tot "\tavg=" tot/12 "data=" $0 
   gTot+=tot
   }
   END {
         print "Number of Lines =" NR "\n" \
                GrandTotal=\t" gTot
       }
   ' yourFile

你会想通过这个 excellent awk tutorial 来工作真正了解正在发生的事情。

希望对您有所帮助。

附言由于您似乎是新用户,如果您得到的答案对您有帮助,请记住将其标记为已接受,和/或给它一个 +(或 -)作为有用的答案。请注意,您只能“接受”一个答案(带有复选标记),并且每天最多可以为 30 个答案投票。

关于shell - 对制表符分隔文件中的所有 "cells"执行算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885609/

相关文章:

php - sh: 2: 1: 未找到 - 将多个 php 参数传递给 bash 脚本

linux - 这些 Unix/Linux 行是做什么的?

bash - 我怎样才能传递特殊字符[例如。 "or ( or ' ] 作为 shell 脚本的参数?

bash - 如何在 bash 中获取一个字符串并将其拆分为 2 个变量?

shell - 在 Bash 中创建多行注释的方法?

linux - 用多个新字符串替换文件中特定位置的单个字符串

shell - wget 屏幕输出无法使用 shell 脚本重定向到日志文件

bash - 变量多重扩展的for循环

linux - awk 查找字符串并下划线打印

bash - echo 从输出中删除最后一行空白