- awk
1.介绍:
基于模式匹配检查输入文本,逐行处理并且输出
通常用在shell脚本中获取指定的数据
单独使用时,可以对文本数据做统计
2.基础语法
格式1:命令 | awk [选项] '[条件]{指令(多个指令可以用;分割)}'
格式2:awk [选项] '[条件]{指令}' 文件
例如:awk '{print 3}' fileName //打印fileName的所有行的第1和第3列,因为没有条件所有扫描所有行
awk内置变量
FS //保存或者设置字段分隔符,例如FS=":", 与-F功能一样
$n //第n列,n为0时表示整行
NF //记录当前处理行的字段个数(列数)
NR //记录当前已经读入行的数量(行数)
过滤时机:BEGIN{} {} END{}
3.常用选项
-F //可以指定分隔符(分割列),默认的分隔符为空格和Tab键。-F: 分隔符为:
4.条件表达式:
正则表达式
还可以匹配列,例如:awk -F: '/{print 7}' file //匹配第3列不是bash结尾的行 (~为匹配 !~为不匹配)
数值/字符比较
== != > >= < <= && | //例如:awk 'NR==2' file //打印行号为2的
5. awk流程控制语法:awk '{if(条件){条件满足执行}else{}}' //if必须在{}内
例如:awk '{if{NR==3}{print NR}else{print "hello"}}'
6. awk for循环:
例如:awk 'BEGIN{for(i=1;i<5;i++) {print i}}'
7. awk数组的定义与使用
定义:数组名[下标]=元素值 //下标可以为字母什么的,有点像map
调用:数组名[下标]
遍历:for(变量名 in 数组名){print 数组名[变量]} //无序打印
网友评论