我有一个以m为单位的制表符分隔文件(其中n是行数,m是列数)。
我想对文件中存在的值执行数学运算(比如在每列中添加5,然后将其除以12)。
任何一行正则表达式命令或混合物......帮助
提前谢谢。
答案 0 :(得分:2)
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来工作,以真正了解正在发生的事情。
我希望这会有所帮助。
P.S。因为你似乎是一个新用户,如果你得到一个帮助你的答案,请记住将其标记为已接受,和/或给它一个+(或 - )作为一个有用的答案。请注意,您只能“接受”一个答案(带有复选标记),每天最多可以投票30个答案。
答案 1 :(得分:1)
尝试sed或awk(awk非常好)他们的目的是为了做到这一点
答案 2 :(得分:1)
使用awk的示例:
gawk '{for (i = 1; i <= NF; i += 1) {printf "%f\t", ($i + 5) / 12;} printf "\n"}'