zoukankan      html  css  js  c++  java
  • awk模块、变量、执行

    1、BEGIN模块

    BEGIN模块在awk读取文件之前就执行

    BEGIN模式常常被用来修改内置变量ORS、RS、FS、OFS等值

    2、awk内置变量(预定义变量)

    变量名属性
    $0 当前记录,一整行
    $1,$2,$3....$a 当前记录的第n个区域,区域间由FS分隔。
    FS 输入区域分隔符,默认是空格。field separator
    NF 当前记录中的区域个数,就是有多少列。number of field
    NR 已经读出的记录数,就是行号,从1开始。number of record
    RS 输入的记录分隔符默认为换行符。record separator
    OFS 输出区域分隔符,默认也是空格。output record separator
    FNR 当前文件的读入记录号,每个文件重新计算。
    FILENAME 当前正在处理的文件的文件名

    FS RS支持正则表达式

    2.1 第一个作用: 定义内置变量

    2.2 第二个作用:打印标识

    2.3 awk实现计算功能

    3、END模块

    END在awk读取完所有的文件的时候,再执行END模块,一般用来输出一个结果(累加,数组结果)。也可以和BEGIN模块一起使用

    3.1 第一个作用:打印标识

    3.2 第二个作用:累加

    1)统计空行(/etc/services文件)

    2)算术题

    1+2+3......+100=5050,怎么用awk表示?

    4、awk经验

    1、BEGIN和END模块只能有一个,BEGIN{}BEGIN{}或者END{}END{}都是错误的。

    2、找谁干啥模块,可以是多个。

    5、awk执行过程

    1. 命令行的赋值(-F或-V)
    2. 执行BEGIN模式里面的内容
    3. 开始读取文件
    4. 判断条件(模式)是否成立
      • 成立则执行对应动作里面的内容
      • 读取下一行,循环判断
      • 直到读取到最后一个文件的结尾
    5. 最后执行END模式里面的内容
  • 相关阅读:
    转载-HTTP
    程序员如何写出杀手级的简历
    23 岁的你,曾处于什么样的状态?现在呢?
    IntelliJ IDEA 14 java项目中添加jar包
    BNR Android Demo学习笔记(一)——CrimeIntent
    Android高仿微信(一)——如何消除启动时的白屏
    Swift2.1 语法指南——高级操作符
    Swift2.1 语法指南——访问控制
    Swift2.1 语法指南——泛型
    Swift2.1 语法指南——协议
  • 原文地址:https://www.cnblogs.com/hyunbar/p/13256129.html
Copyright © 2011-2022 走看看