Linux学习——文本处理工具与正则表达式
目录
一,grep
1,grep介绍
2,grep的常用选项
3,grep使用演示
1,基本使用
直接查找字符串:
使用选项
2,使用正则表达式进行匹配
1,正则表达式介绍
2,使用范例
二,sed
1,sed介绍
2,sed常用选项和指令
3,sed使用实例
1,简单实例
2,综合实例
三,Find
1,find介绍
2,常用选项
编辑
一,grep
1,grep介绍
grep是Linux上的一个文本搜索工具,是用来查找文本文件内的一些符合grep定义模式的文本文件的。格式:grep [OPTIONS...] PATTERN [FILE...]
2,grep的常用选项

3,grep使用演示
1,基本使用
直接查找字符串:
grep "字符串" 文件

使用选项
只显示第一行
grep "字符串" -m 1 文件

查找并显示行号
grep "字符串" -n 文件

只显示查找到的字符串
grep -o "字符" 文件

剔除查找的内容后显示别的内容
grep -v "字符" 文件

使用多个条件查找字符:满足两个条件之一便可以查找
grep -e "字符" -e "字符"

显示匹配到字符条件的行的行号
grep -c 字符 文件

递归条件搜索
1,不管软连接文件
grep -r 字符 文件

2,管软连接
grep -R 字符 文件

不区分大小写
grep -i 字符串 文件

从文件中读取pattern再匹配
先创建文件:

使用-f选项读取文件的pattern内容进行匹配:

2,使用正则表达式进行匹配
1,正则表达式介绍
正则表达式的使用方式可以再网上查询,也可以使用man 7 regex再Linux上查看。
2,使用范例
df | grep "^/dev/sd"|tr -s " " |cut -d% -f1|cut -d " " -f5|head -1
指令解释:
df:显示显示文件系统资源的信息。
grep "^/dev/sd":将df里面以/dev/sd开头的内容截取出来。
tr -s " ":将重复的空格去掉仅保留一个空格。
cut -d% -f1:以%为分隔符分为左右两边,取-f1表示左边。
cut -d " " -f5:以" "为分隔符取第五个。
head -1:只要最上面的第一行。
ss -nt |grep "^ESTAB"|tr -s " "|cut -d " " -f5|cut -d : -f1
指令解释:
ss -nt:
ss是一个用于检查套接字的工具,它可以显示类似于netstat的信息,但比netstat更快。-n选项表示以数字形式显示地址和端口号,不尝试解析服务名称。-t选项指定只显示TCP连接。
|(管道):这个符号用于将前一个命令的输出作为后一个命令的输入。
grep "^ESTAB":
grep是一个强大的文本搜索工具。"^ESTAB"是一个正则表达式,匹配以"ESTAB"开头的行。这里实际上是匹配"ESTABLISHED"状态的连接,但假设是为了简化而只写了"ESTAB"的一部分。然而,注意这样可能不准确匹配到所有ESTABLISHED状态的行,因为完整的状态通常是"ESTABLISHED"。正确的正则表达式应该是"^ESTABLISHED"。
tr -s " ":
tr是一个用于转换或删除字符的工具。-s选项表示压缩序列中的重复字符,但在这个命令中,它实际上对空格进行压缩,因为指定了" "(一个空格)作为要压缩的字符。然而,由于grep的输出通常不包含连续的空格,这个选项可能在这个具体命令中并不必要。
cut -d " " -f5:
cut是一个用于按列提取文本的工具。-d " "指定空格作为字段分隔符。-f5表示提取第五个字段。在ss -nt的输出中,第五个字段通常是本地地址和端口(例如,192.168.1.1:80)。
cut -d : -f1:
- 这个
cut命令再次使用,但这次是以:作为字段分隔符。-f1表示提取第一个字段,即IP地址部分
ss -nat|grep -v "^State"|cut -d " " -f1|sort -u 指令解释:
ss -nat:将所有的tcp连接以数字的方式显示出来。
grep -v "^State":不显示以State开头的行。
cut -d " " -f1:以空格为分隔符并取第一列。
sort -u:排序并去掉重复的状态。
过滤掉文件的注释(包括#号的行)和空行
grep -v "^#|$" /etc/passwd
二,sed
1,sed介绍
sed也是一个文本处理工具,特点是可以一行一行的读取文件内容并处理。相比于vim等文本编辑器更加高效。
格式:sed [OPTION]... {script-only-if-no-other-script} [input-file]...
2,sed常用选项和指令

3,sed使用实例
1,简单实例
打印文件内容
sed 'p' 文件

仅显示与查找匹配的内容
sed -n '/字符串/p' 文件

只打印第一行的内容
sed -n '1p' 文件

sed给每一行后面加上空格
sed 'G' 文件

2,综合实例
删除每行的第二个字符
sed -r 's/(.)(.)(.*)/\1\3/' test.txt
代码解释:
-r:使用扩展模式
s:启用搜索功能
(.)(.)(.*):匹配的字符模式,每一个括号代表一个匹配组。
\1\3:代表显示第一个和第三个捕获组的内容。
删除第二个单词
sed -r 's/^([a-zA-Z]+[^a-zA-Z]+)[a-zA-Z]/\1/' test.txt
解释
sed -r:使用sed的扩展正则表达式模式。's/^([a-Z]+[^a-Z]+)[a-Z]+/\1/g':这是一个替换命令,其结构为s/pattern/replacement/flags。
^:匹配行的开始。([a-Z]+[^a-Z]+):这是一个捕获组,但其中的正则表达式可能不是您想要的。
[a-Z]+:匹配一个或多个字母(注意:[a-Z]实际上可能不是所有sed实现都支持的,因为标准 ASCII 字符集中没有Z到a的范围,但这里可能是想表达[a-zA-Z]的意思,即匹配任何大小写字母)。[^a-Z]+:紧接着尝试匹配一个或多个非字母字符,但由于前面的[a-Z]+已经消耗了尽可能多的字母,这个部分可能永远不会被匹配到(除非输入字符串以非字母字符开头,但这与^冲突)。[a-Z]+:这部分尝试匹配行中紧接着前面部分的又一个或多个字母,但由于前面的正则表达式可能存在的问题,这部分的匹配也可能不是你预期的。\1:在替换文本中,\1引用第一个捕获组的内容。
三,Find
1,find介绍
find是一个文件搜索工具,可以实时的查找文件。
2,常用选项
在使用find时可以指定文件路径进行查找。
指定在根目录下查找 :
sudo find / -name passwd
相关文章:
Linux学习——文本处理工具与正则表达式
目录 一,grep 1,grep介绍 2,grep的常用选项 3,grep使用演示 1,基本使用 直接查找字符串: 使用选项 2,使用正则表达式进行匹配 1,正则表达式介绍 2,使用范例 二&…...
大厂进阶四:React源码Fiber架构解析
本文主要内容: 1、React Concurrent 2、React15架构 3、React16架构 4、Fiber架构 5、任务调度循环和fiber构造循环区别 一、React Concurrent React在解决CPU卡顿是会用到React Concurrent的概念,它是React中的一个重要特性和模块,主要的…...
MongoDB的WiredTiger存储引擎
作者:太阳 从MongoDB 3.2 开始,MongoDB实例默认的存储引擎为WiredTiger,WiredTiger存储引擎具体以下几大优点: 文档级并发 将数据持久化到磁盘 快照和checkpoint 数据压缩 本地数据加密 一、文档级别并发 1、WiredTiger使…...
windows 版本Jenkins的Jenkinsfile中共享变量
场景 jenkins部署在windows服务器上的,需要在Jenkinsfile中获取命令执行的结果存入一个变量,然后在后续的执行中使用此变量 一开始想的是定义一个环境变量,如下所示, pipeline {agent anystages {stage(test) {steps {bat for /…...
Android-->产物收集(含apk文件重命名, aab文件重命名)
以前写过修改apk生成路径和文件名的文章, 如下: AS–›Gradle 7.0.0/4.1.0/4.0/3.3/3.0 修改APK生成路径和文件名(附AAR修改方式以及分析过程)_com.android.build.gradle.internal.api.libraryvaria-CSDN博客 这种方法入侵了gradle,破坏了原有的gradle环境, 经常会导致如下问…...
matlab实现迷宫最佳路径规划
在MATLAB中实现迷宫路径的最佳路径规划,我们可以使用多种算法,其中最常见和高效的是A搜索算法(A Search Algorithm)。A*算法结合了最佳优先搜索和Dijkstra算法的优点,通过启发式函数来评估每个节点的优先级,…...
【自用】Python爬虫学习(二):网页解析的三种方式(re、bs4、xpath)
Python爬虫学习(二) 网页解析的三种方式1.正则表达式-re解析常用表达:re常用函数:在html中的运用: 2.BeautifulSoup解析常用语法:用法举例: 3.xpath解析示例代码1:示例代码2…...
从零到一:家政保洁小程序搭建全攻略与功能作用深度解析
目录 一、家政保洁小程序主要功能 二、家政保洁小程序搭建教程 (一)前期准备 (二)注册与选择工具 (三)设计与开发 (四)测试与优化 (五)发布与推广 一、…...
单元测试:为工程质量保驾护航
单元测试 单元测试是软件开发过程中确保代码质量和正确性的关键手段。它指的是对软件中的最小可测试单元(通常是函数或方法)进行验证,确保其行为符合预期。 基本概念 单元测试:验证软件中最小单元(通常是函数或方法…...
江协科技STM32学习笔记
第01章 STM32简介及开发环境搭建 1.1 STM32简介 1.1.1 STM32F103C8T6 系列:主流系列STM32F1 内核:ARM Cortex-M3 主频:72MHz RAM:20K(SRAM) ROM:64K(Flash) 供电…...
RabbitMQ再回首--往事如梦
这文章你就读吧,越读越🥸,一读一个不吱声 可靠的🐰警官:rabbitMQ,功能全面,不丢数据,体量小,容易堆积 声明exchange channel . exchangeDeclare ( String exchange , …...
头狼择校小程序
综述介绍 头狼择校,是头狼择™高校的简称,我们专注高校、大学的择校。倡导先嗅就业再择校,是预约工具和对话平台。帮您嗅招办、嗅教授、嗅学姐,预约择校有关的老师、顾问,助力考大学和考研的“双考”学生及家长了解就…...
【Electron】npm安装Electron项目失败报错问题和解决办法
前言 闲来无事,便想着研究一下Electron,没想到安装直接就卡住了 问题 npm ERR! RequestError: Hostname/IP does not match certificates altnames: Host: npm.taobao.org. is not in the certs altnames: DNS:*.tbcdn.cn, DNS:*.taobao.com, DNS:*.al…...
人工智能提示(prompt)工程入门
文章目录 人工智能提示(prompt)工程入门一、目的二、使用1、角色2、提示3、上下文4、例子5、输入6、输出 三、使用示例 人工智能提示(prompt)工程入门 一、目的 对于当前的发达的人工智能,我们可以广泛使用࿰…...
【机器学习的基本思想】模型优化与评估
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…...
公司电脑监控软件推荐(一口气了解8款!)一起领略电脑监控界的刀光剑影!
企业的内部管理的需求日益复杂,电脑监控软件作为提升工作效率、保障数据安全的重要工具,其重要性不言而喻。今天,我们将带您一口气了解8款顶尖的公司电脑监控软件,包括国内知名的“安企神”以及多款来自海外的优秀产品,…...
设备图纸资料管理系统:数字化转型下的高效协同与安全管理新篇章
在当今高度信息化的时代,设备图纸资料管理系统作为企业资产与知识管理的重要一环,正日益凸显其不可或缺的价值。这一系统集成了先进的数字化技术与管理理念,旨在实现设备图纸资料的高效存储、快速检索、安全共享及版本控制,为企业…...
ArcGIS基础:标注转注记及简单处理
注记是一个静态的标签图层,能够独立的保存为文件,并且具有计算功能; 标注是一个动态的标签图形,无法以文件的形式进行存储和计算; 2者各有优势和劣势,根据具体需求进行选择 需要注意的是注记要存储在GDB…...
jQuery实现图片轮播效果
实现图片轮播效果,打开页面,每隔3秒切换至下一张图片;光标移入数字时,播放相应图片。 思路: (1)获取需要轮播的图片和展示的div。 (2)使用animate设置left值ÿ…...
关于天地图新手使用
1分钟带你了解学习天地图 适用新手 天地图API (tianditu.gov.cn) 文档api 先去注册key 把脚本放到index.html文件里面 <!-- 天地图的官网申请的tk --> <script src="http://api.tianditu.gov.cn/api?v=4.0&tk=申请的key" type="text/javascr…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
