一、命令概述
一种强大的文本处理工具,用于处理结构化的文本拿数据
- 文本处理
- 生成格式化的文本报告
- 进行算术运算
- 字符串操作
sed,行字符流,执行整行处理的文本处理工具
awk, 行字符流,精细到处理列的文本处理工具
grep 从文本中快速过滤匹配的行
二、awk工作流程
1.读取文件的每一行
2.根据指定的模式(pattern),决定是否对当前进行处理。
3.如果行匹配模式,awk将执行相应的动作(action),直到文件结束
三、awk语法格式
awk 'pattern {action}' input-file
- ptttern 是一个条件表达式
- action 当前pattern执行的命令或脚本
- input-file,要处理的文件
awk内部变量
$0 :代表当前记录(整行)
$1、$2:代表当前记录的第1、第2个字段
NF:代表当前记录的字段数
NR:代表目前为止处理的记录数
FS:字段分隔符,默认空白字符
OFS:字段分隔符,默认是换行符
RS:记录分隔符,默认是换行符
ORS:输出记录分隔符,默认是换行符
四、awk命令的使用
1.输出指定行
awk 'NR==3' filename
2.输出指定字段(列)
awk '{print $1, $3}' filename
3.awk的操作符
算术运算符:+, - , * , /
比较运算符:==, != , < ,>
逻辑运算符:&&, ||
赋值运算符:=
4.BEGIN和END的使用
BEGIN:在处理输入前执行的代码
END:在处理完输入后执行的代码块
awk 'BEGIN { FS = "," } { sum += $1 } END { print sum }' filename