linux学习笔记:awk文本过滤器

有关awk

  • awk是一种模式扫描及处理语言的工具
  • awk是创始人Aho、Weinberger、Kernighan三人名字的缩写
  • 基于模式匹配检查输入的文本,逐行处理并print结果
  • 目前最常用的实际是GNU的gawk

基本用法

格式与变量

  • 格式1:前置命令 | awk [选项] ‘[条件]{编辑命令}’
  • 格式2:awk [选项] ‘[条件]{编辑命令}’ 文件
  • 注:若有多条编辑命令,可以用分号分割

例:输出以冒号作为分割的第一列和第二列,-F选项用于指定分隔符linux学习笔记:awk文本过滤器
常用命令选项:

  • -F:指定分隔符,可省略(默认空格或者tab位)
  • -f:调用awk脚本进行处理
  • awk内置变量linux学习笔记:awk文本过滤器
    内置变量使用示例:linux学习笔记:awk文本过滤器

awk处理时机

  • 行前处理,BEGIN{}:一般用于预处理
  • 逐行处理,{}
  • 行后处理,END{}:一般用于输出结果
    linux学习笔记:awk文本过滤器

awk处理条件

条件如何表示

  • 格式回顾: awk [选项] ‘[条件]{编辑命令}’ 文件
  • 条件的表现形式:
    -正则表达式
    -数值/字符串比较
    -逻辑比较
    -运算符

例:使用正则表达式:
linux学习笔记:awk文本过滤器
例:数值比较
linux学习笔记:awk文本过滤器
例:逻辑比较
linux学习笔记:awk文本过滤器
例:运算符
linux学习笔记:awk文本过滤器

awk流程控制

if分支

例:linux学习笔记:awk文本过滤器

while分支

例:
linux学习笔记:awk文本过滤器

for循环

linux学习笔记:awk文本过滤器

主要控制语句

linux学习笔记:awk文本过滤器
例:
linux学习笔记:awk文本过滤器