awk笔记
- $0:当前行
- -F:字段分隔符 ——$ awk -F”:” ‘{ print $1 $3 }’ /etc/passwd
- -f:引用外部脚本 ——$ awk -f myscript.awk myfile.in
- BEGIN END:在处理文件之前/之后执行的代码。
- /abc/:正则表达式 ——$ awk ‘/root/ {print}’ /etc/passwd
- 代码块之前的布尔表达式”==”、”<”、”>”、”<=”、”>=” 和 “!=” ——$ awk -F”:” ‘$1==”yxx” {print}’ /etc/passwd
- ”~” 和 “!~”:匹配和不匹配 ——$ awk -F”:” ‘$1~/root/ {print}’ /etc/passwd
- if(){}else if (){}else{}
- ||,&&
- 数值变量 ——BEGIN{x=0} /^$/ {x=x+1} END {print x” blank lines found”}
- 字符变量转换成数字变量(含有字符的变量将作为0计算) ——x=”1.11” x=x+1 print x # x=2.11 ——{print $1^2+1}
- 支持的运算符 ——前后加减( i++ 、 –foo )、加/减/乘/除赋值运算符( a+=3 、 b*=2 、 c/=2.2 、 d-=6.2 )模/指数赋值运算符( a^=2 、 b%=4 )
- 分隔符设置FS ——FS=”\t+” ——FS=”[[:space:]+]” #awk默认分隔符
- NF:字段数量
- NR:记录号
- RS:记录分隔符
- OFS:输出字段分隔符。插入到字段之间
- ORS:输出记录分隔符。
参考:https://www.ibm.com/developerworks/cn/linux/shell/awk/awk-1/index.html