当前位置: 首页 > article >正文

从零学习Linux操作系统 第二十五部分 文本处理工具

一、grep命令的基本使用方法及常用参数介绍

grep [全称:Globally search a Regular Expression and Print 全局搜索正则表达式并打印 ]

grep 命令格式

grep 匹配条件 处理文件

grep root passwd过滤root关键字
grep -i root passwd后略大小写
grep -E “<root” passwdroot字符之前不能有字符
grep -E “root>” passwdroot字符之后不能有字符
grep -数字显示过滤行以及上面几行和下面几行
grep -n显示匹配的行所在行号
grep -A显示过滤行以及下面几行
grep -B显示过滤行以及上面几行
grep -v反向过滤

(egrep = grep -E)
在这里插入图片描述

在这里插入图片描述

二、greo命令匹配字符个数的规则

grep 搜索字符数量匹配规则

^westos以westos开有
westos$以westos结尾
w…sw开头s结尾中间4个任意字符
…ss结尾前面5个任意字符
*字符出现任意
?0到1次
+1次到任意次
{n}n次
{m,n}m到n次
{0,n}0-n次
{m,}最少m次
(lee){2}lee字符串出现2次

在这里插入图片描述
grep 脚本代码
要求,统计系统当中能够被操作者使用的用户个数

在这里插入图片描述
用grep过滤出 /etc/passwd 文件中以bash或sh结尾的行(并且前面不能带字符),再用管道符总结多少行

三、sed命令的使用方法

开启sed流编辑器以后,它会把我们要处理对象的所有内容加载到内存的模式空间里面,然后逐行处理,符合条件的行会进行操作,不符合条件行的直接显示

sed 命令格式

命令格式:
sed 参数 命令 处理对象
sed 参数 处理对象 -f 处理规则文件

p显示
sed -n 5p显示第五行
sed -n 3,5p显示3到5行
sed -ne "3p;5p显示3和5行
sed -ne 1,5p1-5行
sed -ne ‘5,$p’5到最后以行
sed -n ‘/^#/p’显示以#开头的行

在这里插入图片描述

d删除
sed 5d删除第五行
sed ‘/^#/d’ fstab把#开头的行删除
sed ‘/^UUID/!d’ fstab除了UUID以外的行都删除

在这里插入图片描述

a添加
sed -e ‘2a hello westsos’第二行后添加hello westos
sed -e ‘$a hello westos’最后一行后面添加 hellowestos
sed -e ‘/^#/a hello westos’#开头的行每一行后面都加 hello westos
w把符合的行写到指定文件中
sed ‘/^UUID/w westofile’ westos把westos中UUID开头的行写入westosfile中
i插入
sed ‘5ihello westos’在第五行前面插入 hello westos
r整合文件
sed ‘5r 文件2’ 文件1将文件2整合 加到文件1第五行后面

替换
sed ‘s/:/###/g’ passwd 全文的 : 替换为###

s表示每一行 g表示每一列

也可以将引号以内的规则写成文件
vim rule

在这里插入图片描述
然后输入命令
sed -f 策略文件 处理的文件
sed -f rule fstab
在这里插入图片描述

四、awk报告生成器的用法

awk -F 分隔符 BEGIN{ }{ }END{ } FILENAME

生成第一列报告
awk -F : ‘{print $1}’ passwd

-F表示指定分隔符

$0 #所有的列
$1 #第一列
$2 #第二列
$3 #第三列

在这里插入图片描述
还可与加上数据的过滤
以root开头的行
awk -F : ‘/^root/{print $0}’ passwd

在这里插入图片描述

增添的参数

/条件1|条件2/ ## 条件1或者条件2
/条件1/||/条件2/ ##条件1或者条件2
/条件1/&&/条件2/ ##条件1并且条件2

| / || 表示或者
&&表示并且

NR #行数
NF #列数
在这里插入图片描述

BEGIN 表示动作开始前做什么

awk -F : ‘BEGIN{print ‘start’}/bash$/{print $0}’ passwd
打印start关键字
在这里插入图片描述
westos #westos变量值
“westos” #westos字符串

在这里插入图片描述
统计以bash结尾的行数
在这里插入图片描述

统计第六行为home
awk -F : ‘$6~/home/{ print $0}’ passwd

在这里插入图片描述
统计第六行不为home
在这里插入图片描述

书写抓取ip需求
在这里插入图片描述
输入ifconfig ens160 命令 是查询ens160网卡的命令
用管道符 | 导出来
再用awk生成报告信息
/inet>/查找inet的信息并且inet是后面不能带字符的
$2 表示第二列
print表示显示出来


http://www.kler.cn/a/230865.html

相关文章:

  • 编码技巧——基于Socket通信的接口调用
  • C程序设计(第5版)谭浩强习题解答 第10章 对文件的输入输出
  • vue-cil的watch函数详解
  • Git - 每次 git pull/push 时需要账号和密码解决方案
  • 什么是VPS服务器技术
  • watch 和 watchEffect 的使用
  • Fink CDC数据同步(一)环境部署
  • c# List集合操作帮助类
  • 杭州融资融券利率一般最低是4.5%,两融有哪些核心注意事项?
  • 【SQL高频基础题】619.只出现一次的最大数字
  • java实战:Spring事务控制之事务回滚入门
  • 在flutter中集成Excel导入和导出
  • YOLO部署实战(2):使用OpenCV优化视频转图片流程并设置帧数
  • binlog解析补录数据
  • Redis.conf 配置文件解读
  • C语言-二分查找
  • 第6节、T型加减速转动【51单片机+L298N步进电机系列教程】
  • 代码随想录 Leetcode46. 全排列
  • Web html和css
  • Docker安装PostgreSQL