• shell三剑客-----awk命令


    目录

    一,awk概述

    1,awk工作原理

    二,awk的格式

    三,内置变量演示

    2, awk常用内置变量

     3,NF(多少列) 和[NR](所少行)的演示

     四,面试题

     五。BEGIN开始和END结尾


    一,awk概述

    AWK是一种处理文本的语言,是一个强大的文件分析工具。

    它专门为文本处理设计的编程语言,也是行处理软件,通常用于扫描过滤统计词汇等工作,数据可以来自标准输入也可以是管道或者文件。

    1,awk工作原理

    • 当读到第一行时,匹配条件,然后执行指定动作,在接着读取第二行的数据处理,不会默认输出。
    • 如果没有定义匹配条件,则是默认匹配所有数据行,awk隐含循环,条件匹配多少次,动作就会执行多少次。
    • 逐行读取文本,默认以空格或tab键为分割符进行分割,将分割所得的各个字段,保存到内建变量中,并按模式或条件执行编辑命令

    与sed比较

    • sed命令常用一整行的处理,二awk比较倾向于将一行分成多个字段然后再进行处理。
    • awk信息的读入也是逐行读取的,执行结果可以通过print功能将字段数据打印显示。
    • 在使用awk命令的过程中,可以使用逻辑操作符。(&&“表示"与”、“||表示"或”、"!“表示非”;还可以进行简单的数学运算,如+、一、*、/、%、^分别表示加、减、乘、除、取余和乘方。)

    二,awk的格式

    1. 格式1:awk [选项] '模式或条件{编辑指令}' 文件1
    2. 🛺🚕🚕🛺🛺🛺🛺🛺🛺🛺🛺🛺🚙🚙🚙🚙🚙🚙
    3. 格式2:awk -f 脚本文件 文件名

    1,awk包含几个特殊的内建变量

    内置变量功能
    NF当前处理的行的字段个数(就是:有多少列)
    NR当前处理的行的行号(就是:有多少行
    FNR读取文件的记录数(行号),从1开始,新的文件重新从1开始计数
    $0当前处理的行的整行内容(就是:表示一行的内容)
    $n当前处理行的第n个字段(就是:第n列
    FILENAME被处理的文件名
    FS指定每行的字段分隔符,默认为空格或制表位(相当于选项 -F )
    OFS输出字段的分隔符,默认也是空格
    RS行分割符。awk从文件上读取资料时,将根据Rs的定义把资料切割成许多条记录,而awk一次仅读取一条记录,预设值是“\n“
    ORS输出分割符,默认也是换行符

    三,内置变量演示

     案例1:结合print进行输出,默认分隔符

     

    案例2:设定分割符号

     

     用x作为分隔符

     显示一个空格,空格需要用双引号引起来,如果不用引号默认以变量看待,如果是常量就需要双引号引起来。

     

     逗号有空格效果

     

    用制表符作为分隔符号

    定义多个分隔符,只要看到其中一个都算作分隔符

    2, awk常用内置变量

    $1代表第一列
    $2代表第二列以此类推
    $0代表整行
    NF一行的列数
    NR行数

     

     3,NF(多少列) 和[NR](所少行)的演示

    1. NR:表示该处理的行序号是多少
    2. NF:表示该处理的行,有多少列

    案例1:打印每一行的列数

    案例2:显示行号

     案例3:显示行号,并显示每一行的内容

     案例4:打印第二行,不加print也一样,默认就是打印

     

     案例5:打印第二行的第一列

    案例6:打印最后一列

    案例7:打印总行数 

     

     案例8:打印文件最后一行

     案例9:加上文字描述行数和列数

     

     四,面试题

    案例1:查看本机的ip地址多少,截取出来

     

    案例2:查看本机流量有多少字节

     

     案例3:查看根分区的可用量

     五。BEGIN开始和END结尾

  • 相关阅读:
    网易邮箱大师上使用icloud邮箱
    由Django-Session配置引发的反序列化安全问题
    基于http的protobuf服务实现
    Linux基本指令及权限理解
    扫除知识共享障碍,天翎知识文档管理系统+群晖NAS一体化解决方案
    什么是回调函数?
    小米手机用什么耳机音质好?发烧级音质蓝牙耳机推荐
    软件的开发模型
    ansible fetch 模块
    Rebex Total Pack 6.0 for .Net Crack
  • 原文地址:https://blog.csdn.net/m0_54594153/article/details/126212774