文本操作笔记之AWK

AWK笔记

1 AWK基础

• AWK 和 sed 的区别
    • AWK 更像是脚本语言
    • AWK 用于“比较规范”的文本处理,用于统计数量并输出指定字段
    • 使用 sed 将不规范的文本,处理为“比较规范”的文本
• AWK 脚本的流程控制
    • 输入数据前例程 BEGIN{ }
    • 主输入循环{ }
    • 所有文件读取完成例程 END{ }

• 记录和字段
    • 每行称作 AWK 的记录
    • 使用空格、制表符分隔开的单词称作字段
    • 可以自己指定分隔的字段
• 字段的引用
• awk 中使用 $1 $2 … $n 表示每一个字段
    • awk ‘{ print $1, $2, $3}’ filename
• awk 可以使用 -F 选项改变字段分隔符
    • awk -F ‘,’ ‘{ print $1, $2, $3}’ filename
    • 分隔符可以使用正则表达式

2 AWK的表达式

• 赋值操作符
    • = 是常用的赋值操作符
        • var1 = “name”
        • var2 = “hello"   “world”
        • var3 =   $1
    • 其他赋值操作符
        • ++   - -   +=  -= *= /=  %=  ^= 
• 算数操作符
    • + - * / % ^
• 系统变量
    • FS 和 OFS 字段分隔符,OFS 表示输出的字段分隔符

   • RS 记录分隔符

    • NR 和 FNR 行数

    • NF 字段数量,后一个字段内容可以用 $NF 取出 

• 关系操作符
    • <   >   <=  >=   ==   !=  ~  !~
• 布尔操作符
    • &&   ||   !

3 AWK的条件与循环

• 条件语句
    • 条件语句使用 if 开头,根据表达式的结果来判断执行哪条语句
    if (表达式)
        awk语句1
    [ else
        awk语句2
    ]
    • 如果有多个语句需要执行可以使用  {  } 将多个语句括起来
• 循环
• while 循环
    while( 表达式 )
    awk语句1
• do 循环
    do{
        awk 语句1
    }while( 表达式 )
• for循环
    for( 初始值 ; 循环判断条件 ; 累加 )
        awk语句1
• 影响控制的其他语句
    • break
    • continue

4 AWK数组

• 数组的定义
    • 数组 :一组有某种关联的数据(变量),通过下标依次访问
        • 数组名[ 下标 ] = 值
        • 下标可以使用数字也可以使用字符串
• 数组的遍历
    • for( 变量 in 数组名)
        • 使用 数组名 [ 变量] 的方式依次对每个数组的元素进行操作 
• 删除数组
    • delete 数组[ 下标 ]
• 命令行参数数组
    • ARGC
    • ARGV

    

5 AWK函数

• 算数函数
    • sin( )  cos( )
    • int( )
    • rand( ) srand( )

• 字符串函数
    • gsub( r, s, t )
    • index( s, t )
    • length( s )
    • match( s, r )
    • split( s, a, sep )
    • sub( r, s, t )
    • substr( s, p, n )
• 自定义函数
    function  函数名( 参数 ) {
        awk语句
        return awk变量 
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值