awk记录和域



                                                      Awk记录和域


       awk认为输入的文件是结构的,将每个输入文件行定义为记录,行中的每个字符串定义为域域之间用空格、TAB键或其他符号分隔,这些符号叫做分隔符。


       awk默认空格键是分隔符,TAB键被认为是连续的空格键来处理(两个或多个连续的空格键或tab键当作一个分隔符处理)。


       awk可以用-F选项改变分隔符(-F表示改变分隔符,-f表示调用awk脚本);还可以通过在BEGIN字段设置环境变量FS来改变分隔符。举例:


        awk  -F“\t”  '{print $3}' /proc/devices                             //将分隔符该做 /t  TAB


        awk    ' BEGIN {FS = “\t”}{print$3} ' /proc/devices       //将分隔符该做 /t  TAB


      awk定义域操作符$指定执行动作的域,域操作符$后面跟的数字变量来标识域的位置,每条记录的域从1开始编号,$1表示第一个域,$2表示第二个域,$0表示所有域。举例(分隔符为空格键)


                 Li                                  Hua                1234567


                   n个空格)                         nTAB键)


          第一个域($1              第一个域($2                   第一个域($3


      awk '{print $1 $2 $3}' input                                                                //打印三个域的字符串


      awk 'BEGIN{one = 1; two = 2}{print $(one+two)}' input                 //打印第三个域的字符串


      awk '{print $0}' input                                                                           //打印所有域的字符串


     不同的输入文件,需要根据实际情况设置相应的分隔符,也可以通过正则表达式将分隔符设置为多个字符。示例:


  1. FS = “\t”               将一个tab键作为分隔符

  2. FS = “\t+”          将一个或多个tab键作为分隔符

    对记录 waz\t\tcq, 1会解释为       waz  空域 cq三个域 , 2 会解释为        waz  cq 两个域

               

本文完全参照           <linux shell 编程从初学到精通>    华清远见嵌入式培训中心  伍之昂等编著

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值