awk的应用

news/2024/7/21 13:35:50 标签: linux, vim, 服务器

awk的基本应用

  • 一、awk的工作原理
  • 二、实际应用
    • 按行输出文本
    • 按字段输出文本
    • 时间的使用
    • 查看各个功能

一、awk的工作原理

awk与sed和grep共成为文本三剑客,都是针对文本非常实用的工具。
awk的工作原理:
遂行读取文本,默认以空格或者tab(制表符)键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是遂行读取的,执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符“&&”表示"与"、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

其命令格式为:
awk 选项 ‘模式或条件{操作}’ 文件1 文件2 .。。。
awk -f 脚本文件 文件1 文件2

awk常见的内建变量(可直接用)如下所示:

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

二、实际应用

按行输出文本

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

按字段输出文本

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

时间的使用

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

查看各个功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
BEGIN中的命令只执行一次,awk数组的下标除了可以使用数字,也可以使用字符串,但是字符串必须加双引号

在这里插入图片描述
-v:设置变量
<<<:表示将后面的内容作为前面命令的标准输入
awk’1’:就算awk‘1{print}’,允许打印读入的行内容
awk’0’:就算awk‘0{print}’,不允许打印读入的行内容
var++的形式:先读取var的变量值,再对var值+1

awk 处理第一行时:先读取 a[$1] 值再自增,a[$1] 即 a[1] 值为空(即0),即为 awk ‘!0’,即为 awk ‘1’,即为 awk’1{print}’
awk 处理第二行时:先读取 a[$1] 值再自增,a[$1] 即 a[1] 值为 1,即为 awk ‘!1’,即为 awk ‘0’,即为 awk ‘0{print}’
ip=ifconfig ens33 | awk '/inet /{print $2}'
echo “本地IP地址是:”$ip
cpu=uptime | awk '{print $NF}'
#awk中NF为当前行的列数, N F 是最后一列 e c h o " 本机 C P U 最近 15 分钟的负载是 : " NF是最后一列 echo "本机CPU最近15分钟的负载是:" NF是最后一列echo"本机CPU最近15分钟的负载是:"cpu
net_in=ifconfig ens33 | awk '/RX p/{print $5}'
echo “入站网卡流量为:”$net_in
net_out=ifconfig ens33 | awk '/TX p/{print $5}'
echo “出站网卡流量为:”$net_out
mem=free -m | awk '/^Mem/{print $4)'
echo “内存剩余容量为:”$mem
disk=df -h | awk '/sda1/{print $4}'
echo "根分区剩余容量为:" d i s k u s e r = ‘ c a t / e t c / p a s s w d ∣ w c − l ‘ e c h o " 本地账户数量为 : " disk user=`cat /etc/passwd |wc -l` echo "本地账户数量为:" diskuser=cat/etc/passwdwclecho"本地账户数量为:"user
login=who | wc -l
echo "当前登陆计算机的账户数量为:" l o g i n p r o c e s s = ‘ p s a u x ∣ w c − l ‘ e c h o " 当前计算机启动的进程数量为 : " login process=`ps aux | wc -l` echo "当前计算机启动的进程数量为:" loginprocess=psauxwclecho"当前计算机启动的进程数量为:"process
soft=rpm -qa | wc -l
echo “当前计算机已安装的软件数量为:”$soft


http://www.niftyadmin.cn/n/326411.html

相关文章

PowerShell 学习笔记 - 控制流

逻辑运算符 -eq Equal 相等返回 True-ne Not Equal 不相等返回 True-gt Greater Than 左边比右边大返回 True-ge Greater or Equal 左边大于或等于右边返回 True-lt Less Than 左边比右边小返回 True-le Less or Equal 左边小于或等于右边返回 True-contains Contains 左边包含…

PostgreSQL数据库查询执行——算子间数据包裹TupleTableSlot

TupleTableSlot定义在src/include/executor/tuptable.h文件中&#xff0c;为何称其为算子间数据包裹&#xff0c;因为头文件中的注释The executor stores tuples in a "tuple table" which is a List of independent TupleTableSlots&#xff0c;也就是说该结构体在执…

云服务器搭建Python项目实现学术优化chatgpt

云服务器搭建实现学术优化chatgpt 1 服务器准备2 云服务器配置2.1 python虚拟环境2.1.1 python3.9安装配置2.1.2 下载python项目2.1.3 创建python虚拟环境 3 后台运行python项目&#xff08;不然不能关闭与云服务器的连接&#xff0c;那意义何在&#xff1f;&#xff09; 1 服务…

计算机网络大作业(Wireshark抓包分析)

实验要求 wireshark的深入学习与掌握&#xff0c;如过滤器的使用&#xff0c;归纳方法通过实验阐述ARP的工作原理利用实验结果分析 ICMP 协议的报文结构字段定义基于实验数据深入分析 TCP 协议的连接过程原理&#xff0c;报文的分片等功能从校园网发起向外网中某 Web 服务器的…

玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试

一、前言 “死亡测试”名字比较恐怖&#xff0c;这里的“死亡”指的的是程序的崩溃。通常在测试过程中&#xff0c;我们需要考虑各种各样的输入&#xff0c;有的输入可能直接导致程序崩溃&#xff0c;这时我们就需要检查程序是否按照预期的方式挂掉&#xff0c;这也就是所谓的…

Elastic_Search 实现索引按周期自动创建

1. 定时任务 通过定时任务向Elastic Search中发送创建索引的请求以达成周期创建索引的目的。这里就不过多说明了&#xff0c;大家应该都会。 2. Elastic Search 索引模板 首先我们需要打开Elastic Search的自动创建索引功能&#xff0c;有点要求的可以顺便配置白名单&#x…

【vue父子组件传值】

【vue父子组件传值】 父传子子传父子组件给父组件传递数据 代码示例 父传子 在父组件的子标签中写一个自定义属性标签 子组件设置props属性就可以接受父组件传值 子传父 1、在父组件中给引用的子组件注册一个事件&#xff08;这个事件的名字是自定义的&#xff09; 2、子组件…

86. print输出函数知识拓展(有练习题)

86. print输出函数知识拓展&#xff08;有练习题&#xff09; 文章目录 86. print输出函数知识拓展&#xff08;有练习题&#xff09;1. print函数语法2. 横着输出数字序列3. 竖着输出数字序列4. 循环输出5. 总结 1. print函数语法 print[prɪnt]&#xff1a;打印&#xff0c;…