1.if else和next使用
原文件
需要输出结果(遇到AA就输出原字符和YES,其他输出NO YES)
命令1:#:cat awk.txt |awk '{if($0~/AA/){print $0" YES"}else{print $0 " NO YES"}}'
命令2:#:cat awk.txt |awk '/AA/{print $0" YES"}!/AA/{print $0" NO YES"}'
命令3:#:cat awk.txt | awk '/AA/{print $0" YES";next}{print $0" NO YES"}'
next相当于JAVA的continue,匹配到AA后,跳过后面的域内容{print $0" NO YES"}'
如果不是AA,则才打印后面的域内容{print $0" NO YES"}'
2.print和printf的区别
将下一行挪到上一行 #:cat hang.txt | awk '/manufa.*=/{printf $0}!/manufa.*=/{print $0}'
解析:printf执行的是不换行操作;print执行后会进行换行。所以根据正则匹配后可以得到如下输出结果。
3.awk变量用法FLAG
判断每一行是否存在,并将下一行复制一遍挪到最后一行
解析:当/Pack.*Hell.*/正则成立是设置一遍标签(flag)a=1;接着判断是否连接着的是否以android开头的,如果是设置b=$0