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…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...