linux中 awk命令
作用: 打印((或者格式化打印))用规则处理完的文本
概要
1 语法格式
- awk 参数 处理规则 文件路径
- 特点
- grep、sed和awk都是读一行处理一行
- -F
- 读一行
- 用默认或者指定分隔符分割当行文本
- 处理文本(用处理规则)
- 处理完的结果赋值给$0
- 重复一行步骤,读然后处理完所有行
- 将所有的结果数据交给END{}处理
- $0
- $n
- NF
- NR
- FS
- OFS
- 从上到下,至少有1个
- BEGIN{}
- 正则
- //
- 循环
- {}
- END{}
- 打印之前最后的处理
- 打印
- prinf
- 格式化打印
- 用到字符
- %s : 字符串
- %d :数字
- - :左对齐
- + :右对齐
- 15 : 至少占用15字符
- 正则
- 比较表达式
- 逻辑表达式
- 算术表达式
- 条件表达式
- 范围表达式
- if
- awk 加 for
- awk 加 while
- 用来记录文本行号
- 指定文本内容分隔符(默认是空格)
- 优先级要高于 参数-F
- 指定打印分隔符
- %s : 字符串
- %d :数字
- - :左对齐
- + :右对齐
- 15 : 至少占用15字符
- awk -F指定的分隔符 '定位{print $0}' /etc/passwd
- 或 awk '定位{print $0}' /etc/passwd
- >
- <
- >=
- <=
- ~ 包含(用于正则匹配)
- !~ 不包含(用于正则匹配)
- [root@localhost ~]# awk -F: '$NF !~ /bash/{print $0}' /etc/passwd
- && : 逻辑与
- || :逻辑或
- ! :逻辑非
- [root@localhost ~]# awk -F: '$3 + $4 > 2000 || $3 * $4 > 2000{print $0}' /etc/passwd
- +
- -
- *
- /
- %
- ==
- >
- <
- >=
- <=
- if(){} 单分支
- if(){}else{} 双分支
- if(){}else if(){}else{} 多分支
- 格式
- i="初始值";while(条件判断){执行语句 ;i++}