awk内置变量和字段变量

 

  • awk 的字段变量

  awk 所内建的字段变量及其涵意如下 :

字段变量

含义

$0

一字符串,其内容为目前 awk 所读入的整行数据。

$1

$0 上第一个字段的数据。

$2

$0 上第二个字段的数据。

...

其余类推

 

  • 读入数据行时,awk如何更新(update)这些内置的字段变量?

  1. 当 awk 从数据文件中读取一行数据时,awk 会使用内置变量$0 予以记录。

  2. 每当 $0 被改动时 (例如:读入新的数据行 或 自行变更 $0) awk 会立刻重新分析 $0 的字段情况,并将 $0 上各字段的数据用 $1、$2、...等予以记录。 

  • awk的内置变量(Built-in Variables)

  awk 提供了许多内置变量,使用者在程序中可使用这些变量来取得相关信息(不用加$)。常见的内置变量有:

内置变量

含义

NF (Number of Fields)

为一整数,其值表示$0上所存在的字段总数。

NR (Number of Records)

为一整数,其值表示awk已读入的数据行数目。

FILENAME

awk正在处理的数据文件名。

 

例如 : awk 从数据文件 emp.dat 中读入第一行记录"A125 Jenny 100 210" 之后,程序中:

    $0 的值将是 "A125 Jenny 100 210"

    $1 的值为 "A125"    $2 的值为 "Jenny"

    $3 的值为 100      $4 的值为 210

    NF 的值为 4           $NF 的值为 210 (笔者注:$NF即为$4)

    NR 的值为 1                 FILENAME 的值为 "emp.dat" 

  • awk的工作流程 :

  执行awk时,它会反复进行下列四步骤。 

  1. 自动从指定的数据文件中读取一个数据行。
  2. 自动更新(Update)相关的内置变量的值。如:NF, NR, $0...
  3. 依次执行程序中 所有 的 Pattern { Actions } 指令。
  4. 当执行完程序中所有 Pattern { Actions } 时,若数据文件中还有未读取的数据,则反复执行步骤1到步骤4。awk会自动重复进行上述4个步骤,使用者不须在程序中编写这个循环 (Loop)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon-son

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值