zoukankan      html  css  js  c++  java
  • Linux文本处理三剑客之awk学习笔记04:工作流程

    工作流程

    可以参考man手册。

    man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk

    示例

    awk -v a=1 -v b=2 'BEGIN{...}{...main...}END{...}' x=3 a.txt y=4 b.txt z=5 
    1. 解析CLI中-v选项的变量赋值。
    2. 将awk代码(包含-v选项的变量赋值)编译成awk可以识别的内部格式。
    3. 执行BEGIN代码块。
    4. 根据RS读取文件(根据ARGV数组元素决定待读取的文件)并划分记录。如果没有待读取的文件则从STDIN中读取。每读取一条记录就执行一次main代码块。
        • 若待读取的文件(即位于非选项型参数位置)的文件名格式为var=val,那么将其识别为变量赋值。由于awk工作流程的执行顺序,因此该变量不存在于BEGIN代码块中,也不存在于出现在此变量之前的文件。例如在执行a.txt时,其main代码块中无法识别变量y和变量z。所有此处的变量在END代码块中均有效。
        • 每读取一条记录:
          • 就设置一次NR、FNR、RT和$0等变量;
          • 根据PROCINFO["FS"]划分字段,设置位置参数/变量$1、$2至$NF;
          • 执行main代码块:pattern通过则执行action,否则不执行。
    5. 执行END代码块。
  • 相关阅读:
    join()方法的使用
    synchronized关键字
    voliatle关键字
    一.线程概述
    NIO demo
    同步阻塞I/O
    Ubuntu16.04.1 安装Nginx
    垃圾收集
    如何从头开始安装 wordpress
    centos 6 安装 gnu c++ 等开发工具
  • 原文地址:https://www.cnblogs.com/alongdidi/p/awkWorkProcess.html
Copyright © 2011-2022 走看看