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>$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 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报 ...