awk简单使用技巧bash
awk:报告生成器,格式化文本输出工具
语法格式:
awk [options] 'script' file1,file2,...
awk [options] 'PATTERN {action}' file1,file2,...
处理机制:
一次从文件中读取出来一行,按照特定分割符对其进行切片(默认空格)ide
程序结构:工具
结束块(END BLOCK)
END
结束块是awk代码程序结束时执行的代码(在处理完输入流以后执行)
例子:
awk -F: 'BEGIN{print "======start======"}{print $1,$NF}END{print "======end======"}' /etc/passwdcode
awk -F: '{printf "username:%s bash:%s\n",$1,$NF}' /etc/passwd awk -F: '{printf "username:%-20s bash:%s\n",$1,$NF}' /etc/passwd awk -F: '{sum+=$3}END{print sum}' /etc/passwd awk 'BEGIN{a=5;b=6;if(a == b) print "a == b";else print "a!=b"}'
模式匹配:
模式匹配符:
~
!~ip
例子: awk -F: '$1~"root"{print $0}' /etc/passwd awk '/^$|^#/{print}' /etc/fstab awk '!/^$|^#/{print}' /etc/fstab awk -F: '$(NF-1)=="/var/ftp"{print $0}' /etc/passwd 逻辑运算: awk 'BEGIN{A=6;if(a >0 && a<=6)print "true";else print "false"}' awk 'BEGIN{A=6;if(a <0 || a<=6)print "true";else print "false"}'