AWK常见使用技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWK常见使用技巧相关的知识,希望对你有一定的参考价值。
awk简单使用技巧awk:报告生成器,格式化文本输出工具
语法格式:
awk [options] ‘script‘ file1,file2,...
awk [options] ‘PATTERN action‘ file1,file2,...
处理机制:
一次从文件中读取出来一行,按照特定分割符对其进行切片(默认空格)
程序结构:
- 开始块(BEGIN BLOCK)
BEGIN
开始块就是awk程序启动时执行的代码部分(在处理输入流之前执行),并且在整个过程中只执行一次,一般情况下,我们在开始快中初始化一些变量 - 主体块(BODY BLOCK)
针对每一行输入的行都会执行一次主体部分的命令 -
结束块(END BLOCK)
END
结束块是awk代码程序结束时执行的代码(在处理完输入流之后执行)
例子:
awk -F: ‘BEGINprint "======start======"print $1,$NFENDprint "======end======"‘ /etc/passwdawk -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+=$3ENDprint sum‘ /etc/passwd awk ‘BEGINa=5;b=6;if(a == b) print "a == b";else print "a!=b"‘
模式匹配:
模式匹配符:
~
!~例子: 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 ‘BEGINA=6;if(a >0 && a<=6)print "true";else print "false"‘ awk ‘BEGINA=6;if(a <0 || a<=6)print "true";else print "false"‘
以上是关于AWK常见使用技巧的主要内容,如果未能解决你的问题,请参考以下文章