38. Shell的文本处理正则表达式(awk——报告生成器)

Lesson38 Shell的文本处理正则表达式(awk——报告生成器)

1. 什么是awk
awk:报告生成器
处理机制:awk会逐行处理文本,支持在处理第一行之前做一些准备工作,以及在处理完最后一行做一些总结性质的工作,在命令格式上分别体现如下
BEGIN{}:读入第一行文本之前执行,一般用来做初始化操作
{}: 逐行处理,逐行读入文本执行相应的处理,是最常见的编辑指令块
END{}:处理完最后一行文本之后执行,一般用来输出处理结果
2. awk基本用法

Linux上默认使用gawk

此次实验使用desktop虚拟机
首先复制一份/etc/passwd文件到当前目录
在这里插入图片描述
由于passwd文件内容太多,所以删掉一部分,如下图所示

在这里插入图片描述
逐行打印 ,文件有多少行就打印多少个文件名passwd
在这里插入图片描述
cat -b passwd #查看passwd文件的内容带行号
在这里插入图片描述
以冒号:作为分隔符打印passwd文件有多少列
在这里插入图片描述
以冒号:作为分隔符打印passwd文件有多少行
在这里插入图片描述
将passwd文件内容再删掉一部分,为了更清晰的看到实验的结果
在这里插入图片描述
开头打印NAME, 中间打印行号, 结尾打印END
在这里插入图片描述
开头打印NAME, 打印第1列和第7列的内容, 结尾打印END

在这里插入图片描述
开头打印NAME, ¥0表示打印所有内容, 结尾打印END
在这里插入图片描述
开头打印NAME, 第一列为空, 结尾打印END

在这里插入图片描述
打印不是以bash结尾的行
在这里插入图片描述
打印以bash结尾的行
在这里插入图片描述
打印以bash结尾并且不含有nologin的行
在这里插入图片描述
打印以bash结尾或者含有nologin的行
在这里插入图片描述
wc -l #查看文件有多少行, 显示文件行数和文件名
在这里插入图片描述

3. awk测试
1. 抓取eth0网卡的ip
2. 统计在系统中可以登陆系统并且家目录不在/home下的用户

  1. eth0网卡打印以inet开头并且后边没有内容的第二列
    在这里插入图片描述
    可以看到,我的desktop主机eth0网卡ip为172.25.254.114
    打印从0开始计数,在/etc/passwd中以bash, tcsh, sh和csh结尾并且第六列(家目录)不在/home下的用户
    在这里插入图片描述
    可以看到, 在系统中可以登陆系统并且家目录不在/home下的用户只有root一个,计数为1

`

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值