awk的BEGIN和END块

简介: awk的BEGIN和END块

在awk编程语言中,BEGINEND 块是特殊的模式,它们不依赖于输入文件或流中的数据行:

  1. BEGIN块

    • BEGIN 块在awk开始处理任何输入之前执行。
    • 通常用于初始化变量、打印表头信息,或者执行需要在读取实际数据前完成的操作。
    • 示例用法:
      BEGIN {
        print "Processing started at:", systime()
        FS = ","    # 设置字段分隔符
        OFS = "\t"  # 设置输出字段分隔符
      }
      
  2. END块

    • END 块在awk处理完所有输入行之后执行。
    • 它常用来做最终的计算(如统计总数)、汇总输出或者在所有处理完成后进行操作。
    • 示例用法:
      NR > 0 { sum += $3 }  # 对第三列求和(假设每一行都有第三列)
      END {
        print "Total sum of third column:", sum
        print "Number of processed lines:", NR
      }
      

结合上述示例,在一个完整的awk脚本中,BEGIN块首先执行,然后逐行处理输入数据,最后执行END块。这为编写预处理和后处理逻辑提供了一种方便的方式。

目录
相关文章
|
20小时前
|
Perl
awk '{print $12}' | awk -F "ms" '{sum+=$1}END{printf "avg: %f, total: %d\n", sum/NR, NR}' 啥意思
awk '{print $12}' | awk -F "ms" '{sum+=$1}END{printf "avg: %f, total: %d\n", sum/NR, NR}' 啥意思
|
4月前
|
Linux Shell Perl
Linux | awk 特殊模式“BEGIN 和 END”
Linux | awk 特殊模式“BEGIN 和 END”
59 2
|
4月前
|
Perl
在 `awk` 命令中,`BEGIN { commands }`
在 `awk` 命令中,`BEGIN { commands }`
27 2
End Sub 和 Exit Sub 的区别
End Sub 和 Exit Sub 的区别
125 0
End Sub 和 Exit Sub 的区别
|
缓存 NoSQL Redis
BITCOUNT key [start end]
统计字符串被设置为1的bit数. 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。 start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,以此类推。
1340 0
|
Web App开发