文本三剑客之AWK(基本用法)

一、什么是AWK

AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
简单来说,AWK 是一种处理文本文件的语言,是一个强大的文本分析工具;它可以在无交互的模式下实现复杂的文本操作;通常与sed、grep一起并称处理文本的三剑客。

二、AWK的使用

1.awk的格式

格式一:awk [选项] ‘模式条件{操作}’ 文件名
格式二:cat 文本 | awk [选项] ‘模式条件{操作}’

注:awk支持正则表达式和通配符

2.awk常见的内置变量

内置变量 作用
FS 列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
NF 当前处理的行的字段个数
NR 当前处理的行的行号
$0 当前处理的行的整行内容
$n 当前处理行的第n个字段
RS 行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’

3.实践(基础)

多说无益,直接上实验

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

awk支持提取关键字所在行,效果等同于grep
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.常用的值的提取

  1. 本机IP地址:
    ifconfig ens33 | awk ‘/inet / {print $2}’
    在这里插入图片描述

  2. 本机MAC地址
    ifconfig ens33 | awk ‘/ether/ {print $2}’
    在这里插入图片描述

  3. 磁盘已用大小(包含%):
    df | awk ‘//$/ {print $5}’
    在这里插入图片描述

  4. 磁盘已用大小(不包含%):
    df | awk -F “( |%)*” ‘//$/ {print $5}’
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/4d03d86a83ef4e9ca2517bdaabc5e44b.png

  5. 本机型号
    lscpu | awk -F: ‘/型号名称/ {print $2}’ | tr -s " "
    在这里插入图片描述

  6. 已用内存
    free -h | awk ‘/Mem/ {print $3}’
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40707090/article/details/124535060