awk编程语言/数据处理引擎
创造者: Aho weinberger kernighan
基于模式匹配检查输入(逐行读入逐行输出)
将期望的匹配结果print到屏幕
语法格式:
awk '模式 {操作}' 文件1 文件2 。。。。。
常用的内建变量
NR 当前处理行的序数 (行号)
FS 字段分隔, 缺省为空格或Tab位
$n 当前行的第n个字段
$0 当前行的所有文本内容
按行号输出文本
awk 'NR==1,NR==3 {print}' file.txt
awk '(NR==1) || (NR==3) {print}' file.txt
使用比较运算
awk '(NR%2==1) {print}' file.txt 输出所有奇数行
awk '(NR%2==0) {print}' file.txt 输出所有偶数行
使用正则表达式
awk '/2/ {print}' file.txt
awk '/base$/ {print}' file.txt
指定分隔,指定输出字段
awk 'NR==2, NR==3 {print $1, $3}' file.txt 输出第2-3行的第1,3字段
awk -F. '$5=="yes" {print $0}' file.txt 输出以.分隔后的第五个字段包含yes的行