在 `awk` 命令中,`BEGIN { commands }`

简介: 在 `awk` 命令中,`BEGIN { commands }`

awk 命令中,BEGIN { commands } 代码块是一个特殊模式,它指定了一系列在 awk 开始处理输入文件之前执行的命令。这些命令通常用于初始化变量、打印表头或者进行任何不需要依赖于具体输入行的操作。

以下是 BEGIN { commands } 的几个常见用途:

  1. 初始化变量
    在处理数据前,你可能需要设置一些全局变量的初始值。

    BEGIN {
        FS = ","    # 设置字段分隔符为逗号
        OFS = "\t"  # 设置输出字段分隔符为制表符
        total = 0   # 初始化一个用于累计总和的变量
    }
    
  2. 打印表头
    当你需要提前打印输出文件的表头时,可以在 BEGIN 区块内完成。

    BEGIN {
        print "姓名", "年龄", "性别"  # 打印表头
    }
    
  3. 读取外部数据或配置
    虽然 BEGIN 区块不能直接读取输入文件的数据行,但它可以用来读取其他外部文件的内容作为初始化信息。

  4. 预处理逻辑
    对于那些不依赖于输入记录但在处理所有记录之前必须完成的任务,也可以在这里编写相应的逻辑。

例如:

BEGIN {
    # 打印程序开始运行的时间戳
    systime = systime()
    print "程序开始运行时间:", systime
}

总之,在 awk 脚本中使用 BEGIN 块能够确保在处理实际数据之前执行一系列操作,这对于脚本的初始化以及提供上下文环境非常有用。

目录
相关文章
|
4月前
|
Linux Shell Perl
Linux | awk 特殊模式“BEGIN 和 END”
Linux | awk 特殊模式“BEGIN 和 END”
59 2
|
4月前
|
Perl
在 `awk` 命令中,动作 `{ commands }`
在 `awk` 命令中,动作 `{ commands }`
26 2
|
Linux iOS开发 MacOS
报错 sed: 1: extra characters at the end of d command
报错 sed: 1: extra characters at the end of d command
529 0
|
Linux Shell Windows
Shell - line 2: $‘\r‘: command not found
拷贝脚本提交后报错 line 2: $'\r': command not found,但是这是别的同学可以运行后发给我的,随后开始排查。安装 dos2unix 需要使用 yum。安装 yum 需要使用 brew。
466 0
Shell - line 2: $‘\r‘: command not found
|
Shell
Shell 脚本中常用命令——Sort、Uniq、Cut、Seq
Shell 脚本中常用命令——Sort、Uniq、Cut、Seq
670 0
Shell 脚本中常用命令——Sort、Uniq、Cut、Seq
|
机器学习/深度学习 Shell