Linux运维实例 应用awk来进行高效率运维

前言

awk和sed类似 都是编辑器的一种 但在原理和功用上不太一样 sed是流处理器 线性去执行 awk是根据模式和条件执行编辑命令

一、awk的工作原理

原理

awk是逐行读取文本,默认以空格或者tab来为分隔符进行分割,将分割所得到各个字段保存至内建变量中,并按模式或者条件执行编辑命令。
相比sed,awk倾向于一个将一行分为多个"字段"然后再进行处理,awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。再使用awk命令的过程中,可以使用逻辑操作符"&&“表示"与” "||“表示"或” "!“表示"非”:还可以进行简单的数学运算,如+ - * / % ^ 代表加减乘除 取余 和乘方 取余可以取6位。

命令格式

awk 选项 ‘模式或条件 {操作}’ 文件1 文件2 。。。
awk -f 脚本文件 文件1 文件2 。。。

常用选项

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

二、使用方法

1.文件输出

输出文件的整个内容
在这里插入图片描述
输出行到行之间的内容 写法有两种
在这里插入图片描述
在这里插入图片描述

输出两个不连续的行 有别于上面行于行的区间输出
在这里插入图片描述
输出奇数行和偶数行 利用取余来判断
在这里插入图片描述

在这里插入图## 标题片描述
根据字符开头匹配输出行 例如根据a开头来匹配 结尾字符也可以匹配

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

BEGIN用法

begin模式表示,在处理指定的文件之前,需要先执行begin模式中指定的模式中指定的操作,之后awk在去执行操作,再执行end模式中指定的动作,end{}语句模块,一般也会放入打印结果等语句。
例如来统计用i开头的行数
在这里插入图片描述

2.根据条件来精确匹配文件中的字符

awk中可以用-F来匹配分隔符来输出行中的字段
例如利用,来匹配每行的第2个字段
在这里插入图片描述
也可以匹配多个字段
在这里插入图片描述
在这里插入图片描述

三元运算符

用于在awk中运算
表示如果1的值小于等于2,就把1值的赋给x 反正就把2的值赋给x
在这里插入图片描述
将每行的行号和输出来,每次输出加一
在这里插入图片描述

管道和双引号调用shell命令

输出以,分割的行数

在这里插入图片描述
输出文件中以1开头的文件 调用wc -l的结果去输出
在这里插入图片描述
使用命令去截取内存和cpu的使用情况
在这里插入图片描述
在这里插入图片描述
统计在线的用户数 应用who命令的结果 和getline
在这里插入图片描述
调用hostname命令 来查找当前的用户名
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值