博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awk的求和计算使用;awk多个分隔符如何使用?
阅读量:7287 次
发布时间:2019-06-30

本文共 1648 字,大约阅读时间需要 5 分钟。

1、对于下图,如何使用awk求所有各列的和

   

和:175 16 78 19

方法:awk '{for(n=1;n<=NF;n++)t[n]+=$n}END{for(n=1;n<=NF;n++)printf t[n]" ";print"\n"}'

2、求某一列的和:

[linux@test /tmp]$ awk '{sum += $1};END {print sum}' test

3、求某一列满足某些条件的和:

[linux@test /tmp]$ awk '/aaa/ {sum += $2};END {print sum}' test 举例:对于 11 1 32 3 12 2 33 4 43 3 2 1 12 2 2 2 43 3 3 3 54 5 6 6 使用 awk '/12/ {sum += $2};END {print sum}' 结果为4。含义----求满足每行里有字符12的所有第二列的和

4、比较完整的一个例子:

awk -F ','  'BEGIN{sum=0 ;count=0}{if ($(NF-11) == 2 && $NF == 0 && $3 == "1.6.1_1_1") {sum +=$5; count++;} } END {print "sum="sum" count="count " avg="sum/count}'

说明:

BEGIN{sum=0 ;count=0} 初始化计数器;
END {print "sum="sum" count="count " avg="sum/count} 打印汇总,计数器和均值;
if ($(NF-11) == 2 && $NF == 0 && $3 == "1.6.1_1_1") {sum +=$5; count++;} 判断倒数第11个字段,判断倒数第一个字段,判断第三个字段(字符串) 第五个字段汇总累加,计数器累加

$NF 可用来表示一个记录的最后一个栏位

NF表示当前行的字段数,$0表示当前行

 

 

 

关于多个分割符号:

1、awk -F ',' 表示使用逗号多分隔符   

2、awk -F 'AB' 表示使用符号AB做分隔符 echo ABCDABDDCADAFB  | awk -F 'AB' '{for(i=1;i<=NF;i++)printf $i" "}'输出 CD DDCADAFB

3、awk -F '[AB]' 表示使用A或者B做分隔符,就是遇到字符A或者B都分割 echo ABCDABDDCADAFB  | awk -F '[AB]' '{for(i=1;i<=NF;i++)printf $i" "}' 输出  CD  DDC D F

4、awk -F '[\\|]' 表示使用符号‘|’做分隔符,这里有两层转义,先转义\,然后转义|。

5、echo "ABC|DAB|DD CA DAFB"  | awk -F '[ \\|]' '{for(i=1;i<=NF;i++)printf $i" "}' 输出 ABC DAB DD CA DAFB

6、print打印会换行,printf打印不换行

 

 

参考:

数学计算:

1、http://bbs.chinaunix.net/thread-3558406-1-1.html

2、https://www.chedong.com/blog/archives/000682.html

3、https://blog.csdn.net/bright_mac/article/details/3419419

4、https://www.ibm.com/developerworks/cn/linux/l-cn-awkinwork/index.html

分隔符:

1、http://blog.51cto.com/jschu/1770467

2、http://www.cnblogs.com/aquastar/archive/2012/10/07/2776208.html

你可能感兴趣的文章
javascript构造函数与原型
查看>>
ActiveMQ应用笔记二:Producer与Consumer模板代码
查看>>
JavaFx初探
查看>>
Android创建启动画面
查看>>
微软职位内部推荐-SDE II
查看>>
laravel里面使用event
查看>>
Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类
查看>>
Hadoop第13周练习—HBase作业
查看>>
Android 数字签名学习笔记
查看>>
BW常用事务码Tcode
查看>>
eclipse package,source folder,folder区别及相互转换
查看>>
setImageResource和setImageDrawable区别
查看>>
HDMI介绍与流程
查看>>
模型的实现
查看>>
2-Medium下的MultipleCommandAssembly
查看>>
用CentOS 7打造合适的科研环境 :zhuan
查看>>
1、Delphi 打开目录和txt文件模块
查看>>
WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)
查看>>
Gliffy
查看>>
[51单片机] 以PWM控制直流电机为例建一个简单的51工程框架
查看>>