• Shell 文本三剑客 awk


    目录

    前言

    一、awk工具介绍

    二、awk工作原理

    三、awk内置变量

    四、自定义变量 


    前言

    awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出,GNU/Linux发布的AWK目前由自由软件基金会(FSF)进行开发和维护,通常也称为 GNU AWK

    有多种版本:

    AWK:原先来源于 AT & T 实验室的的AWK

    NAWK:New awk,AT & T 实验室的AWK的升级版

    GAWK:即GNU AWK。所有的GNU/Linux发布版都自带GAWK,它与AWK和NAWK完全兼容

    GNU AWK 用户手册文档。

             在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成多个字段然后进行处理。AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。

    gawk:模式扫描和处理语言,可以实现下面功能。

    vim : 是将整个文件加载到内存中再进行编辑,受限内存。

    awk(语言) : 读取一行处理一行。

    一、awk工具介绍

    1.功能强大的编辑工具

    2.无交互的情况下实现复杂的文本操作

    3.命令格式

    (1)awk 选项 '模式或条件 { 编辑指令 }' 文件1 文件2

    (2)awk -f  脚本文件 文件1 文件2

    1. 格式:
    2. awk [options] 'program' var=value file...
    3. awk [options] -f programfile var=value file...
    4. 说明:
    5. program通常是被放在单引号中,并可以由三种部分组成
    6. BEGIN语句块
    7. 模式匹配的通用语句块
    8. END语句块
    9. pattern{action statements;..}
    10. pattern: 决定动作语句何时触发及触发事件,比如: BEGIN, END,正则表达式等
    11. action statements: 对数据进行处理,放在{}内指明,常见: print, printf
    12. 常见选项:
    13. -F“ 分隔符”指明输入时用到的字段分隔符,默认的分隔符是若千个连续空白符
    14. -v var=value变量赋值
    15. awk [选项] '模式条件{操作}'文件1文件2....
    16. awk -f|-v 脚本文件 文件1 文件2.....

     

     

      

    二、awk工作原理

            逐行读取文本,默认以空格为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

            awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。

    三、awk内置变量

    1. FS:指定每行文本的字段分隔符,缺省为空格或制表符(tab)。与"-F"作用相同 -F -FS一起使用-F的优先级高
    2. NF:当前处理的行的字段个数
    3. NR:当前处理的行的行号(序数)
    4. $0:当前处理的行的整行内容
    5. $n:当前处理行的第n个字段(第n列)
    6. FILENAME:被处理的文件名
    7. RS:行分隔符。awk从文件上读取资料时,将根据RS的定义就把资料切割成许多条记录,而awk一次仅读入一条记录进行处理。预设值是\n
    8. OFS 输出字段的分隔符,默认也是空格
    9. ORS 输出分割符,默认也是换行符
    10. FNR 读取文件的记录数(行号),从1开始,新的文件重新从1开始计数

     

     

     

     

    四、自定义变量 

     

    综合应用 

     

     

     

  • 相关阅读:
    redis数据结构基本语法
    设计模式(六)适配器
    UltraISO做u盘镜像启动盘
    js之防抖、节流函数
    联合国教科文发布,ChatGPT等生成式AI教育应用指南
    2.3.1 协程设计原理与汇编实现
    Python海洋专题七之Cartopy画地形水深图的陆地填充
    驱动开发-按键中断
    一文总结 C++ 常量表达式、constexpr 和 const
    Python语言:元组的使用
  • 原文地址:https://blog.csdn.net/Drw_Dcm/article/details/126249960