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,判断月份是否为一月,若是则执行统计操作。统计完后按要求打印到屏幕上