awk '{pattern + action}' {filenames}
pattern可以是某种条件也可以是正则 /正则/
内置变量:FS 分隔符 NF 列数 NR已读的行数 0 整列 FILENAME文件名
awk变成
条件判断
1.echo '11 22' |awk 2}'
2.echo '11 22' |awk '{if(2}}'
循环
1.for(i=1;i<=10;i++){}
2.for(i in 数组){}
内置函数
gsub(r,s) 在整个0中最左边最长的子串代替s,相当于 sed 's///'
substr(s,p) 返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分
常用的命令:
awk '{print 0}' 打印4-8行
awk '{if (NR> 3 && NR < 9) {print 1}}' 4-8行打印全行,其他行打印第一列
awk -F[/:] 多个分隔符
awk 'BEIGN{}END{}'开始前做一些事,最后做一些事
last | awk '{S[5>100){count++; sum+=
1;count++;}END{for (i = 0; i < NR; i++) print name[i]}' /etc/passwd 统计所有用户