正则表达式与文本处理工具

目录

引言

一、正则表达式基础

(一)字符匹配

1.基本字符

2.特殊字符

3.量词

4.边界匹配

(二)进阶用法

1.组与引用

2.选择

二、命令之-----grep

(一)基础用法

(二)高级用法

三、命令之-----sed

(一)基本用法

1.打印功能

2.插入内容

(二)查找替换

(三)变量

(四)高级用法

四、命令之-----awk

(一)基本介绍

(二)基本用法

(三)变量

(四)正则匹配

(五)line ranges:行范围

(六)条件判断

(六)数组

文本实战

1.过滤IP地址

2.统计网络连接状态


引言

正则表达式(Regular Expression,简写为regex或regexp)是一种用于文本搜索、匹配和替换的强大工具。它定义了一种字符串模式,使得我们可以通过这种模式来查找、验证或提取符合特定规则的文本片段。

在计算机科学和文本处理领域,正则表达式(Regular Expression)无疑是一种强大的工具。它为我们提供了一种简洁而富有表现力的方式来搜索、替换或提取符合特定模式的文本片段。无论是在编程开发、数据清洗、网络爬虫还是日志分析中,正则表达式的应用都无处不在。

一、正则表达式基础

(一)字符匹配

1.基本字符

直接写出即可匹配该字符本身,例如 a 匹配字符 "a"。

grep是一个全局搜索并打印匹配模式的行的命令。等下会讲到

2.特殊字符

.匹配任意单个字符,可以是一个汉字
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符,示例:[^zhou][^a.z][a.z]
[:alnum:]字母和数字
[:alpha:]代表任何英文大小写字符,亦即A-Z,a-z
[:lower:]小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:]大写字母
[:blank:]空白字符(空格和制表符)
[:space:]包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广
[:cntrl:]不可打印的控制字符(退格、删除、警铃...)
[:digit:]十进制数字
[:xdigit:]十六进制数字
[:graph:]可打印的非空白字符
[:print:]可打印字符
[:punct:]标点符号
\w#匹配单词构成部分,等价于[_[:alnum:]]
\W#匹配非单词构成部分,等价于[^_[:alnum:]]
\S#匹配任何非空白字符。等价于[^\f\n\r\t\v]。
\s#匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
\d数字字符集,等同于 [0-9],如\d+可以匹配一个或多个连续的数字。

以前四个为例

.  :表示匹配单个字符

[ ]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

[:alnum:]:字母和数字

3.量词

?前一个元素出现0次或1次如 colou?r 可以匹配 "color" 或 "colour"
*前一个元素出现0次或多次如 a*b 可以匹配 "b"、"ab"、"aab" 等
+前一个元素至少出现1次如 a+b 可以匹配 "ab"、"aab",但不匹配 "b"
{n}前一个元素精确出现n次如 a{3} 只能匹配 "aaa"
{n,}前一个元素至少出现n次如 a{2,} 可以匹配 "aa"、"aaa" 等
{n,m}前一个元素最少出现n次最多出现m次,如 a{2,4} 匹配 "aa"、"aaa" 和 "aaaa"

?的用法

*的用法

+的用法

{n,m}的用法

4.边界匹配

^匹配字符串的开始位置如 ^Hello 只匹配以 "Hello" 开头的字符串
$匹配字符串的结束位置如 World$ 只匹配以 "World" 结尾的字符串
\b匹配单词边界确保前后为非单词字符和单词字符的交界处

^的用法

$的用法

\b的用法

\b主要用于位置锚定,即精确地界定匹配的模式必须是独立的单词,而不是作为其他单词的一部分。

(二)进阶用法

1.组与引用

()捕获分组允许对内部模式进行分组,并可以引用捕获的内容

2.选择

|表示或操作匹配左右两边的任何一个表达式

符号“|”的使用

正则表达式是每个程序员都应该掌握的重要技能之一,熟练运用它可以极大地提高工作效率和代码质量。然而,需要注意的是,不同编程语言和工具对正则表达式的实现可能存在细微差异,请根据具体环境查阅相关文档并进行适配。同时,编写复杂正则时应尽量保持清晰和简洁,避免过度复杂的正则导致可读性和维护性降低。通过不断的实践与学习,你会发现正则表达式的世界充满了无限可能!

上面是一些正则表达式的基础用法。想要熟练掌握,还需要结合命令多加练习,下面介绍一些在工作中必备的三个文本处理命令

grep、sed 和 awk 是Linux/Unix环境下的三个非常强大的文本处理工具,它们在命令行中广泛用于搜索、替换和分析文本数据。

二、命令之-----grep

grep命令是Linux和类Unix系统中用于搜索文本文件中匹配特定模式的行的强大工具。它的全称是Global Regular Expression Print,即全局正则表达式打印

语法为

grep [选项]  表达式  文件名

-i忽略大小写进行匹配。
-v反向选择,打印不包含匹配项的行。
-n在输出行前加上行号。
-c只显示包含匹配项的行数,而不是具体行内容。
-w精确匹配整个单词。
-e实现多个选项间的逻辑or关系
-f从文件中读取多个搜索模式。
-r ;-R 递归地搜索目录下的所有文件。r不处理软链接R处理软链接
-l仅列出包含匹配行的文件名。
-m最多显示count个匹配行。
-o只显示匹配内容
-q静默输出,不显示任何内容。一般在写脚本的时候使用
-E指定一个正则表达式模式。

(一)基础用法

grep的基础用法就是匹配已知字符

例如下图所示

还可以进行组合,比如查看一个目录下,有哪些文件包含匹配的字符串

使用grep  -lr  需要匹配的内容  目录

-o:表示只显示匹配的内容

-e:匹配多个内容,用-e连接起来

-m:最多显示指定的匹配行数

-v:反选,显示匹配内容之外的内容

-f:处理两个文件相同内容 把第一个文件作为匹配条件

-w:精准匹配单词

(二)高级用法

与正则表达式相结合使用,一般使用正则表达式时,大多数字符都具有特殊含义,所以在命令行中需要进行转译,或者加 -E 使用扩展正则,支持更丰富的正则表达式特性

例如匹配ip地址,子网掩码和广播地址

这个时候,我们只需要加上-E开启扩展正则就无需进行转译,可以直接匹配

结合| 就无需使用-e进行字符串关联

使用grep统计当前主机有多少普通用户可以登录

总之,grep -E 提供了比基本正则表达式更多的灵活性和功能,使得能够编写更复杂、更精确的搜索模式。

三、命令之-----sed

相对于grep命令来说,sed的命令就更加强大了一些。

sed(Stream Editor)是一种流编辑器,它逐行处理文本文件或输入流,并能够进行搜索、替换、删除、插入等操作。

Sed是从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到最后一行。每当处理一行时,把当前处理的行存储在临时缓冲区中,称为模式空间(PatternSpace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

sed命令,一般用于脚本当中

(一)基本用法

sed的基本语法为

sed  [选项]  ‘语法选项’  文件名

-e

用指定命令或者脚本来处理输入的文本文件只有一个操作命令时省略,

一般在执行多个操作命令使用

-f用指定的脚本文件来处理输入的文本文件
-n

不输出模式空间内容到屏幕,取消默认的打印行为,

只有在命令中显式使用 p 命令时才会打印行。

             -r 或 -E

使用扩展正则表达式
-h显示帮助
-i直接修改目标文件
-i.xxx备份文件并原处编辑。xxx为自定义后缀名,可以随意设置
-s将多个文件视为独立文件,而不是单个连续的长文件流

语法选项(模式空间操作):

s/old/new/flags

替换命令,用 new 替换每一行首次出现的 old,可选的标志包括

g:全局替换,在一行中所有匹配的地方都进行替换。

i:忽略大小写。

p:打印出已替换的行。

d删除命令,删除匹配当前模式空间内容的行。 
a\ text在当前行后添加文本 text,新行以反斜杠 \ 结束。 
i\ text在当前行前插入文本 text。
p打印当前行(默认行为,如果没有 -n 参数的话)。
q退出 sed,如果后面跟着一个数字,则在处理到第 n 行之后退出。
c替换,将选定行替换为指定内容
w保存模式匹配的行至指定文件

地址范围:

number指定要操作的行号。
/regex/根据正则表达式匹配的行。
address1, address2处理从 address1 到 address2 的行。

1.打印功能

虽然sed本身具有打印功能,但是直接使用sed命令却无法打印,因为sed的打印原理是将匹配的每一行内容,逐行放入模式空间,并打印到屏幕上。这里没有匹配项,所以无法打印

而加上语法选项p之后会将每一行的内容打印两边,这是因为,sed本身具有打印功能,而p选项,是打印文件内容,就等于将所有内容匹配了一遍,所有sed又打印了一遍。

加上-n选项后,取消了自动打印功能,所以只执行了p功能的打印属性

打印指定行数

2.插入内容

a:下方插入 i:上方插入 c:指定行替换

 将其它文本的内容插入到当前文本中

这些都只是打印出来的内容,真实文件是没有改变的,想要真实修改文件,需要加-i选项

(二)查找替换

语法格式为  sed  [选项]  s/old/new/flags  文件路径

匹配旧内容时支持通配符,比如将selinux永久关闭,修改配置文件

查找替换中,还有一种比较实用的用法叫后向引用

就是使用捕获分组() 将括号中的字符串定义为一个分组,第一个括号中的内容就是1.第二个括号中的内容就是2,以此类推

修改httpd的配置文件中的监听端口

指定行数

指定需要修改的行的范围

(三)变量

sed支持变量查找与替换

首先定义变量

语法格式为

sed  -ri  "s/${变量名}/${变量名}/g"  /etc/passwd

(四)高级用法

sed语法用有一些比较高级的使用方法

下面是一个语法选项

选项含义
P打印模式空间开端至\n内容,并追加到默认输出之前
N读取匹配到的行的下一行追加至模式空间
n读取匹配到的行的下一行覆盖至模式空间
G保持空间取出的内容追加至模式空间
g保持空间取出的数据覆盖至模式空间
H模式空间中的内容追加至保持空间
h模式空间中的内容覆盖至保持空间
x把模式空间中的内容与保持空间中的内容进行互换
d删除模式空间中的行
D如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间重新启动循环,如果模式空间不包含换行符,则会像发出d命令那样启动正常的新循环

n,表示读取匹配到的行的下一行覆盖至模式空间

打印奇数行与偶数行的方式

烧脑挑战

首先需要直到语法选项的含义

-n:取消默认打印

1:表示第一行

!:取反

G:保持空间取出的内容追加至模式空间

h:把模式空间中的内容覆盖至保持空间

$!:表示最后一行

d:删除

现在,结合图片解释一下

从第一行开始匹配:1!取反,不是第一行才执行G保持空间取出的内容追加至模式空间),第一行不执行执行G,直接执行h(把模式空间中的内容覆盖至保持空间)保持空间为行1,不符合$(最后一行)条件,删除模式空间内容

第二行:1!取反,不是第一行就执行G,将保持空间取出的内容追加至模式空间,而后执行h,将行2与行1覆盖至保持空间,不是最后一行,删除模式空间内容

第三行:1!取反,不是第一行就执行G,将保持空间取出的内容追加至模式空间,而后执行h,将行3、行2、行1覆盖至保持空间,不是最后一行,删除模式空间内容

以此类推,一直到最后一行,不删除模式空间内容,输出到屏幕

小结:sed语法一般用在脚本当中,不需要打开文件,进行文件修改,如果在bash环境中一般直接使用vim进行修改,但是,处理大文件时使用sed命令会更好,因为vim需要打开文件,会占用缓存资源,sed不需要打开文件可以直修改

四、命令之-----awk

(一)基本介绍

awk 是一款强大的文本处理工具,它基于模式匹配和行处理的概念进行设计。在Unix/Linux环境中,awk 通常用于对结构化文本数据(如日志文件、表格数据等)执行一系列操作,包括搜索、过滤、格式化输出以及各种计算和转换。

起源与名称: awk 的名字来源于其三位创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的首字母组合

现在使用的awk命令来自gawk软件

基本语法: awk [options] 'pattern { action }' file(s)

options:可选的命令行选项,例如 -F 用于设置输入字段分隔符。

pattern:一个或多个条件表达式,当指定的模式匹配到当前行时,执行相应的动作。用{}指明

action:在模式匹配成功后要执行的操作,可以包含任意合法的Awk语句,如变量赋值、打印、循环、函数调用等。

file(s):待处理的一个或多个输入文件名。

工作原理:

awk 将每一行输入数据视为一条记录,并将记录按照指定的分隔符划分为多个字段。对于每条记录,它都会尝试匹配给定的模式,如果模式匹配,则执行相应的动作。默认情况下,字段之间由空白字符(空格或制表符)分隔,但可以通过 -F 参数自定义分隔符。

内置功能

变量:awk 提供了一系列预定义变量,如 $0 表示整个记录,$1 到 $n 分别表示各字段,NF 表示字段数,NR 表示当前处理的记录行号等。

BEGIN/END 块

BEGIN 块在读取任何输入之前执行一次,常用于初始化变量或打印头部信息。

END 块在所有输入处理完毕后执行一次,适合于统计汇总结果或打印尾部信息。

运算符和表达式:支持算术、比较、逻辑及正则表达式等,可以用来构造复杂的匹配和控制流程。 流程控制:if...else 条件判断,for 和 while 循环,以及其他控制结构。

函数:内置有多种函数,如数学函数、字符串函数,同时也允许用户自定义函数。

选项:

-v定义变量
-F指定分隔符

常见内置变量

(二)基本用法

awk默认以一个以上的空格为分隔符

比如以前想过滤出IP地址,需要好几个命令堆加在一起,现在只需要awk一个命令就可以了

-F:指定分隔符

BEGIN/END 块

BEGIN 块在读取任何输入之前执行一次,常用于初始化变量或打印头部信息。

END 块在所有输入处理完毕后执行一次,适合于统计汇总结果或打印尾部信息。

BEGIN/END必须要大写

awk还支持标准输入

(三)变量

awk中常见的内置变量有以下几种

内置变量作用
NR当前处理的行的行号(序数)
NF当前处理的行的字段个数
FS列分隔符,指定每行文本的字段分隔符,默认为空格或制表位。与 “ -F ” 作用相同
OFS输出内容的列分隔符
RS

行分隔符,awk从文件中读取资料时,将根据RS的定义把资料切割成许多条记录,

而awk一次仅读入一条记录进行处理。预设值是"\n"

$0 当前处理的行的整行内容
$n当前处理行的第n个字段(第n列)
FILENAME

被处理的文件名

NR:表示当前处理的行的行号(序数)

语法为awk 'NR==n{处理动作}'  文件名

例:

awk '{print $1,NR}' passwd:打印出行号

awk 'NR==2{print $1}' /etc/passwd:只取第二行的第一个字段
awk 'NR==1,NR==3{print}' passwd :打印出1到3 行


awk '(NR%2)==1{print NR,$0}' passwd:打印出函数取余数为1的行
awk '(NR%2)==0{print NR,$0
}' passwd:打印出函数取余数为0行

$0:当前处理的行的整行内容

awk 'NR==1||NR==3{print}' passwd:打印出1和3行
awk 'NR>=3 && NR<=6{print NR,$0}' /etc/passwd :打印出大于等于第三行,小于等于第六行,也就是3-6行

FNR:将多个文件分开显示

NF:当前处理的行的字段个数

例:

awk -F: '{print NF}' passwd

awk -F: '{print $NF}' passwd :$NF表示最后一个字段

df|awk   '{print $(NF-1)}':倒数第二行

FS:列分隔符,指定每行文本的字段分隔符

RS:行分隔符,awk从文件中读取资料时,根据RS的定义把资分段, 而awk一次仅读入一条记录进行处理。预设值是"\n"

OFS 输出内容的列分隔符($n=$n 用于激活,否则不生效,n且必须存在)

(四)正则匹配

awk同样支持正则表达式进行匹配

(五)line ranges:行范围

算术操作符
x+y, x-y, x*y, x/y, x^y, x%y

比较操作符:
==, !=, >, >=, <, <=
逻辑
与:&&,并且关系
或:||,或者关系
非:!,取反

(六)条件判断

if语句:awk的if语句也分为单分支、双分支和多分支
单分支为if(判断条件){执行语句}


双分支为if(判断条件){执行语句}else{执行语句}


多分支为if(判断条件){执行语句}else if(判断条件){执行语句}else if(判断条件){执行语句}else if(判断条件){执行语句 

(六)数组

awk的数组是关联数组(即key/value方式的hash数据结构),索引下标可为数值(甚至是负数、小数等),也可为字符串

1. 在内部,awk数组的索引全都是字符串,即使是数值索引在使用时内部也会转换成字符串

2. awk的数组元素的顺序和元素插入时的顺序很可能是不相同的

文本实战

1.过滤IP地址

[root@localhost ~]#ifconfig ens33|grep  netmask|tr -s " "|cut  -d " "  -f3
192.168.83.30

#ifconfig ens33:只看ens33网卡信息
#grep   netmask:过滤包含netmask的行
#tr -s " "     : 压缩空格
#cut -d " " -f3:以空格为分隔符,取第三列

[root@localhost ~]#ifconfig ens33|sed  -nr  's/ .*  inet (.*)  netmask.*/\1/p'
192.168.83.30

#ifconfig ens33:只看ens33网卡信息
#sed...........:
#-nr:关闭自动打印并开启扩展正则  
#.*表示任意字符,第一个.*表示前面的空格 
#inet (.*)表示inet后面的任意字符
#netmask.*表示netmask后面的任意字符;
#\1表示调用第一个括号中的内容;
#p打印
#打印出第一个括号中的内容,inet 后面的括号,里面的内容就是Ip地址
#需要注意空格符号,inte后面有一个空格 (.*)后面有两个空格  netmask


[root@localhost ~]#ifconfig ens33|awk  /netmask/'{print  $2}'
192.168.83.30

#ifconfig ens33:只看ens33网卡信息
#awk........
/netmask/   :找到包含netmask的行
{print  $2} :打印第二列

2.统计网络连接状态

总结:

grep、sed 和 awk是在日常工作中必不可少的操作命令,需要重点去掌握,而正则表达式,是实现文本高效处理的重要组成部分

命令名称主要功能
grep根据正则表达式搜索文件内容,并打印匹配行。
sed

对输入流(如文件或管道的输出)进行逐行编辑,可以实现查找、替换、删除、插入

等多种操作。

awk

基于模式匹配对每一行数据进行处理,支持更复杂的条件判断和字段处理能力,通常

用于结构化数据的处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/368730.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio 21.2.2官方中文版重磅发布2024最新FL21下载安装图文使用教程

FL Studio 21.2.2中文版惯称水果编曲, 是一个完整的电音软件音乐制作环境或数字音频工作站。是现在流行的数字音频工作站之一,包括撰写,整理,记录,编辑,电音,混音和掌握专业品质的音乐。 FL Studio 21.2.2编曲软件即“Fruity Loops Studio”&#xff0c;简称FL&#xff0c;也就…

【C++初级篇】C++入门

目录 1. C关键字(C98) 2. 命名空间 2.1 命名空间定义 2.2 命名空间使用 3. C输入&输出 4. 缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 5. 函数重载 5.1函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用 6.1 引用概念 6.2 引用特性 6.3 常引用 6.4…

时间复杂度为 O(n) 的排序算法

大家好&#xff0c;我是 方圆。本文介绍线性排序&#xff0c;即时间复杂度为 O(n) 的排序算法&#xff0c;包括桶排序&#xff0c;计数排序和基数排序&#xff0c;它们都不是基于比较的排序算法&#xff0c;大家重点关注一下这些算法的适用场景。 桶排序 桶排序是分治策略的一…

内网信息收集-Windows篇

目录 内网信息收集 机器角色分析 本机的信息收集 密码信息 如何查找内网的网段 进程、端口、补丁、共享文件夹 总结 域环境信息收集 MSF信息收集 内网信息收集 机器角色分析 1、判断当前主机是什么服务器&#xff1f; web服务器、开发测试服务器、公共服务器、文件服…

[word] 怎么将word文档中的文字转换成一个4行5列的表格 #职场发展#笔记#经验分享

怎么将word文档中的文字转换成一个4行5列的表格 怎么将word文档中的文字转换成一个4行5列的表格&#xff1f; 将文档中的四行文字转换成一个4行5列的表格的具体步骤如下&#xff1a; 1、首先打开需要编辑的Word文档&#xff0c;进入到编辑页面中。 2、然后选中需要编辑的文字…

​Nacos搭建注册中心与配置中心

目录 一、Nacos的安装和部署 1. 下载Nacos 2. 解压安装包到本地 3. 配置数据库&#xff08;可选&#xff09; 4. 启动Nacos服务 5. 登陆控制台 二、springboot整合Nacos 1. 添加依赖 2. 配置注册中心、配置中心 3. 演示 Nacos是一个平台产品&#xff0c;主要提供注册…

《数据安全法》解读篇

《中华人民共和国数据安全法》 颁布时间&#xff1a;2021年6月10日实施时间&#xff1a;2021年9月1日《中华人民共和国数据安全法》整体架构图 数据安全的定义&#xff1a;是指通过采取必要措施&#xff0c;确保数据处于有效保护和合法利用的状态&#xff0c;以及具备保障持续…

使用ESP32-S3对MQ-135空气质量传感器的使用记录(Arduino版)

一、硬件上&#xff1a; 1、使用esp32开发板的04引脚与AO连接&#xff0c;检测AO引脚的电平 二、软件上&#xff1a; 1、使用Arduino快速完成开发 2、源码&#xff1a; // Potentiometer is connected to GPIO 04 (Analog ADC1_CH3) const int adcPin 4;// variable for s…

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

一、grep命令的基本使用方法及常用参数介绍 grep [全称&#xff1a;Globally search a Regular Expression and Print 全局搜索正则表达式并打印 ] grep 命令格式 grep 匹配条件 处理文件 grep root passwd过滤root关键字grep -i root passwd后略大小写grep -E “<root”…

鲜花销售|鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)

鲜花销售小程序目录 目录 基于微信小程序的鲜花销售系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、前台功能模块 2、后台功能模块 (1) 后台登录 (2) 管理员功能模块 用户管理 商家管理 鲜花信息管理 鲜花分类管理 管理员管理 系统管理 (3) 商家功…

大数据时代效率革新:数字化管理助力企业迈向全新高度-亿发

在大数据时代的浪潮中&#xff0c;数字化管理成为企业不可或缺的发展趋势。以信息技术为支撑&#xff0c;数字化管理为企业带来了前所未有的机遇和挑战。让我们一起探讨&#xff0c;在这个数字时代&#xff0c;数字化管理如何引领企业走向更加高效、智能的未来。 1. 数据驱动决…

【Java程序设计】【C00243】基于Springboot的社区医院管理系统(有论文)

基于Springboot的社区医院管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的社区医院管理服务系统 本系统分为系统功能模块、管理员功能模块、用户功能模块以及医生功能模块。 系统功能模块&#xff1a;社…

Android Camera2 API 后台服务

最近在搞CameraAPP需要将Camera2弄成一个后台服务&#xff0c;发现跟预览的Activity没多大变动只是加了Service&#xff0c;和一些简单的修改。之前的公司也用到Camera2&#xff0c;发现用到的时候还是蛮多的所以记录一下&#xff0c;代码在文章末尾 camera2的结构如下&#x…

〔57页成品论文〕2024美赛E题完整1~4小问解答+配套数据代码+后续保姆级答疑服务

基于 SVM 模型的财产保险可持续性分析 摘 要 根据最新数据&#xff0c;越来越多地区的极端天气现象逐渐增多&#xff0c;保险业面临的困境&#xff1a;保险公 司的利润危机以及财产所有者的支付能力问题越发明显。本文基于 SVM 模型对不同地区 进行分类&#xff0c;为相应部门在…

【Nginx】nginx入门

文章目录 一、Web服务器二、Nginx三、Nginx的作用Web服务器正向代理反向代理 四、CentOS上安装Nginx(以CentOS 7.9为例) 一、Web服务器 Web 服务器&#xff0c;一般是指“网站服务器”&#xff0c;是指驻留于互联网上某种类型计算机的程序。Web 服务器可以向 Web 浏览器等客户…

【达梦数据库】一种另辟蹊径免密登录方式

最近对在鼓捣disql 希望可以自定义一些好玩的东西&#xff0c;来更快捷的实现登录&#xff0c;本方案借助于达梦提供的外部加密的密码文件&#xff0c;在登录的时候通过读取密码文件来实现代填用户名和密码。这种代填密码的方式在其他的软件中也有广泛的应用 概述 具体实现分两…

简单使用阿里云OSS对象存储

首先我们先去阿里云控制台开通oss对象存储&#xff08;阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台&#xff09; 这篇文件是借鉴至&#xff08;教你三分钟上手阿里云OOS上传操作_阿里云定时上传怎么使用-CSDN博客&#xff09;的&#xff0c;源码也给了&a…

2024 RTE行业(实时互动行业)人才发展学习总结

解决方案 人才画像 开发者人才素质要求&#xff1a; 具备多个领域的技术知识注重团队合作&#xff0c;具备协作能力以用户为导向的用户体验意识具备创新思维和解决问题的能力需快速响应行业变化和持续的学习能力具备项目管理能力 学习和吸收新知识的渠道 RTE人才分类

前端vue/react项目压缩图片工具@yireen/squoosh-browser

想要在前端项目中压缩图片&#xff0c;然后再上传到后端保存&#xff0c;就需要一个压缩工具的帮助&#xff0c;暂时有两个依赖库可以选择&#xff1a;image-conversion和yireen/squoosh-browser&#xff0c;看了官方仓库地址和更新时间等详情&#xff0c;发现还是yireen/squoo…

计算机硬件基础知识

mos管 电阻 电容 MOS管的功能&#xff1a; 开关功能&#xff1a;MOS管可以用作开关&#xff0c;通过控制栅极电压来控制电流的通断。当栅极电压为高电平时&#xff0c;MOS管导通&#xff0c;允许电流通过&#xff1b;当栅极电压为低电平时&#xff0c;MOS管截止&#xff0c;阻止…