添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

awk版本
awk用一行代码就可以解决问题,像这样(注意耗时):
在这里插入图片描述

至此,我们可以看出,awk代码简单,但是性能却不差!在同样的机器上处理同样的文件,awk的运行时间是Python的一半左右,是R的大概十分之一。 可以说,awk已经非常快了

C版本
都说C快,让我们看看到底有多快。代码如下:
在这里插入图片描述

可以看出,C的版本也仅比awk的稍快一点点。但是,C的代码复杂多了!由此,我们可以粗略比较出awk是一个非常完美的文本处理工具!

如果有任何问题,欢迎交流!

(公众号:生信了)
在这里插入图片描述

例题:给出8行值,要 出8行 平均值 平均值 ,和列出8行中最大值的最大值。如此就 出了8行数字的 平均值 和最大值,是不是很简单?1 平均值 :57.7025,最大值:81.5。2 平均值 :57.1077,最大值:79.8。3 平均值 :57.6491,最大值:81.6。4 平均值 :58.2071,最大值:81.9。5 平均值 :57.1034,最大值:83.6。6 平均值 :57.5858,最大值:83.3。7 平均值 :57.8051,最大值:86.7。8 平均值 :57.5063,最大值:83.0。$NF 打印最后 一列 。 本文链接:https://blog.csdn.net/wyqwilliam/article/details/825600431、 和cat data| awk '{sum+=$1} END {print "Sum = ", sum}'2、 平均cat data| awk '{sum+=$1} END {print "Average = ", sum/NR}'3、 最大值cat data|aw... cat mytest.txt| awk ‘{sum+=$1}END{print "Average = ",sum/NR}’ > output.txt # 最大值 cat mytest.txt| awk ‘BEGIN {max = 0} {if ($1+0 > max+0) max=$1} END {print “Max=”, max}’ >> output.txt #test.txt文件内容: 0.98008990 0.38389489 0.61610511 0.97206704 0.10028277 0.50441934 0.49558066 0.9743... 文章目录写在前面 awk 平均值 awk 最大值 awk 最小值 awk 极值、均值的实际应用 awk 命令 极值和均值需要熟悉该命令的基本用法,如果你不熟悉该命令,请先阅读shell脚本之 awk 命令——分隔符介绍一文。本篇博文带你熟悉 平均值 、最大值、最小值的方法,并以实际的应用带你进一步掌握 awk 的高级用法。 以下为 平均值 、最大值、最小值用到的文件data,使用cat data查看内容为 awk 平均值 awk '{su $ cat /tmp/hoge.data 2011-01-13 18:47:46 WARN HogeHoge - getData 180 2011-01-13 18:47:46 WARN HogeHoge - getData 485 2011-01 [root@master yjt]# cat yjt.sh #!/bin/bash awk -v field="$1" '{sum+=$field; n++;}END {if (n > 0) print sum/n;else {print 'error' > "/tmp/.stderr"; exit 1};}' tt [root@master yjt]# cat tt1 2 31... 执行方法 awk ‘BEGIN{system(“shell命令)}’ 就行 [root@CHSHA-CT-WWW-249 ~]# awk ‘BEGIN{system(“hostname”)}’ CHSHA-CT-WWW-249.360buy.com [root@... awk 'BEGIN {min = 65536} {if ($1+0 < min+0) min=$1} END {print "Min=", min}' test.txt Min= 9 取列最大值: awk '{max=max&gt;$0?max:$0}END{print max}'格式化第三列并保留两位小数输出: awk '{ printf "%.0fG\n",$3/1024/1024/1024 }' 和并计算 平均值 awk '{ sum += $2 ; average = sum/NR} END { printf "%.2fG\n", average}'例如有文件内容如下图... if test -f $file avg=` awk '{if (NR>1) for(i=1; i<=NF; i++) {a[i]+=$i; b[i]++}}; END {for(i=1; i<=NF; i++) printf "%f%s", a[i]/b[i], (i==NF?ORS:OFS)}' $file` echo $file. AWK 实用工具带有其自己的自包含语言,它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报 ...