awk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。他读取输出,或者文件的方式是一行,一行的读,根据你给出的条件进行查找,并在找出来的行中进行操作,感觉他的设计思想,真的很简单,但是结合实际情况,具体操作起来就没有那么简单了。他有三种形势,awk,gawk,nawk,平时所说的awk其实就是gawk。​

 

按列求和:

在Shell中,我们可以用awk实现按列求和的功能,非常简单。看下面的例子:

1.简单的按列求和




​[linux@test /tmp]$ cat test​


123.52

125.54

126.36




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


375.42

2.对符合某些条件的行,按列求和




​[linux@test /tmp]$ cat test​


aaa 123.52

bbb 125.54

aaa 123.52

aaa 123.52

ccc 126.36

对文件test中 第一列为aaa的行求和




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


370.56