8-awk

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qinshi965273101/article/details/81362627

1、单引号的作用

如下图:双引号中的$符号会被bash程序扩展,在执行echo命令前把变量 $var1 转为变量的值100,再执行echo命令。

单引号中的$符号会被保留,原封不动的打印出 ‘$var1’ 字符

单引号 引起来的内容,可以阻止bash程序去扩展里面的内容。双引号阻止不了。

2、显示文件的第一列

awk  -F':'  '{print $1}'  fileName  

awk 默认会切割且默认以空字符分割,此处指定’:’为分割符

awk 支持函数,此处的print是打印函数

$1 对于awk命令表示第一列

awk逐行读入数据,读入一行就调用一次匿名函数 {print $1}

3、在读取数据之前和之后调用指定的函数

awk  -F':'  'BEGIN{print "col1\tcol2"} {print $1"\t"$2} END{print"结束一行"}'  fileName

awk 可以写多个匿名函数,但是BEGIN和END都只能写一个

BEGIN 和 END 函数都只会被调用一次

4、带判断条件的匿名方法

awk  -F':'   '/matchString/{print $!}'   fileName

只有匹配到 matchString 字符串才会调用匿名函数

5、内部变量

awk -F':'   '{print NR"\t"NF"\t"$0}'  fileName

上述命令中 NR 和 NF 是内部变量,分别表示“行号”“列数

$0 表示整行的内容

6、按要求统计员工工资

awk '{split($2,date,"-"); if(date[2]=="01"){name[$1]+=$3}} END{for(i in name){print i"\t"name[i]}}' awk.txt

代码解释:把第二列用“-”拆分得到数组date,判断月份是否为一月,若是则执行统计操作。统计完后按要求打印到屏幕上

猜你喜欢

转载自blog.csdn.net/qinshi965273101/article/details/81362627
awk