从零学习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.hqwc.cn/news/453689.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实训】网络规划与部署实训

一 实训目的及意义 本周实训主要是了解网络规划与部署&#xff0c;熟悉三大厂商华为、思科、锐捷交换机路由器以及相关协议的原理和配置&#xff0c;提高学生的动手能力和分析规划部署能力。 实训主要针对计算机网络系统集成的设计与实现的实际训练&#xff0c;着重锻炼学生熟练…

Linux文件结构

所有Linux系统的文件结构都是一样的&#xff0c;区别于win系统的c盘&#xff0c;d盘&#xff0c;他只有一个根目录“/”&#xff0c;下面的文件夹结构基本是一样的&#xff0c;如下&#xff0c;文件夹有“箭头”代表的是软链接&#xff0c;即该文件夹的位置不在此&#xff0c;右…

C#实现坐标系转换

已知坐标系的向量线段AB&#xff0c;旋转指定角度后平移到达坐标AB 获取旋转角度以及新的其他坐标转换。 新建窗体应用程序CoordinateTransDemo&#xff0c;将默认的Form1重命名为FormCoordinateTrans&#xff0c;窗体设计如图&#xff1a; 窗体设计代码如下&#xff1a; 部分…

树莓派-Ubuntu22.04

树莓派 1 安装Ubuntu系统2 ssh登录3 配置3.1 安装软件3.2 换源3.3 安装桌面3.4 开机脚本 1 安装Ubuntu系统 通过制作sdk&#xff0c;使系统在sdk中运行&#xff1a; 下载制作软件&#xff1a;https://www.raspberrypi.com/software/ 下载Ubuntu镜像&#xff1a;https://cn.ub…

【Linux】静态库和动态库

动静态库 一、静态库1. 静态库概念2. 制作静态库&#xff08;1&#xff09;朴素方法 --- 不打包&#xff08;2&#xff09;对静态库打包 3. 使用静态库&#xff08;1&#xff09;朴素方法 --- 直接使用&#xff08;2&#xff09;使用打包好的静态库 二、动态库1. 动态库概念2. …

【React】redux状态管理、react-redux状态管理高级封装模块化

【React】react组件传参、redux状态管理 一、redux全局状态管理1、redux概述2、redux的组成1.1 State-状态1.2 Action-事件1.3 Reducer1.4 Store 3、redux入门案例1.1 前期准备1.2 构建store1.2.1 在src下新建store文件夹1.2.2 在store文件夹下新建index.ts文件1.2.3 在index.t…

day20网页基本标签

网页基本标签 标题标签段落标签换行标签水平线标签字体样式标签注释和特殊符号 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网页基本标签</title> </head> <body> <!--标题…

基于Arduino与Bosch BHI260AP联合开发板的智能家居项目

这款名叫Nicla Sense ME的开发板是Arduino Pro旗下迄今为止尺寸最小同时采用最新一代博世传感器技术的最新产品。Nicla Sense ME配备了Bosch Sensortec的BHI260AP人工智能传感器系统、BMM150磁力计、BMP390气压传感器&#xff0c;以及独特的BME688四合一气体传感器。 Nicla Sen…

4. 树(二叉树、二叉查找树/二叉排序树/二叉搜索树、平衡二叉树、平衡二叉B树/红黑树)

树 1. 二叉树1.1 概述1.2 特点1.3 二叉树遍历方式1.3.1 前序遍历(先序遍历)1.3.2 中序遍历1.3.3 后序遍历1.3.4 层序遍历 2. 二叉查找树&#xff08;二叉排序树、二叉搜索树&#xff09;2.1 概述2.2 特点 3. 平衡二叉树3.1 概述3.2 特点3.3 旋转3.3.1 左旋3.3.2 右旋 3.4 平衡二…

spring boot打完jar包后使用命令行启动,提示xxx.jar 中没有主清单属性

在对springBoot接口中间件开发完毕后&#xff0c;本地启动没有任何问题&#xff0c;在使用package命令打包也没异常&#xff0c;打完包后使用命令行&#xff1a;java -jar xxx.jar启动发现报异常&#xff1a;xxx.jar 中没有主清单属性&#xff0c;具体解决方法如下&#xff1a;…

Day 35 | 贪心 860.柠檬水找零 、 406.根据身高重建队列 、 452. 用最少数量的箭引爆气球

860.柠檬水找零 题目 文章讲解 视频讲解 思路&#xff1a;分别列出三种支付方式对应的找零情况 class Solution {public boolean lemonadeChange(int[] bills) {int five 0, ten 0, twenty 0;for (int i 0; i < bills.length; i) {if (bills[i] 5) {five;} else if…

研究生如何找答案?推荐你使用这4个公众号和工具 #知识分享#知识分享#笔记

随着大学课程的增多和知识的不断积累&#xff0c;大学生们常常面临着繁重的作业和复杂的题目。为了解决这一问题&#xff0c;许多大学生搜题软件应运而生。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题…