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

Linux技巧|centos7|重新认识和学习egrep和grep命令

前言:

相信提高文本检索工具,大家脑海里肯定有很多工具会自动跳出来,比如,grep,egrep,sed,cat,more,less,cut,awk,vim,vi,nano,strings等等工具(vim,nano 这样的文本编辑工具也是兼具文本检索功能的嘛,要是不能检索就没有存在的必要了~~~~~)

那么,这些文本信息检索工具里如果按照使用频率来说,第一个毫无疑问是文本编辑工具vim了,其次就是文本检索工具cat和grep了,在次就是sed和awk这样的流检索工具了,而egrep可能使用频率上就比较低了,但,其实有些工具就和人的性格一样:低调不代表能力不行,相反,egrep的强大应该是和vim一样毋庸置疑的啊!!!

其实呢,grep和grep这两个命令是比较有意思的,也就是非常的有用的,在Linux这里,grep和egrep这两个命令是必要要熟练掌握和运用的

那么,本文将就grep和egrep命令在做一个详细的介绍

一、

grep和egrep的相似处和不同处

  • egrep执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。
  • egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范,且egep支持更多的元字符,即egrep使用的是拓展的正则表达式
  • grep和egrep这两个命令的帮助基本是一致的,so,学会了一个命令,另一个命令就也学会了

那么,也就是可以简单的认为grep和egrep基本是一个命令,只是egrep使用的时候更为简练,搜索的时候正则规则egrep比grep更多,它们之间的关系可以认为是vim和vi (vim比vi多了语法,搜索高亮等等附加功能,但主要的功能---文本编辑并没有任何区别)的关系,这里,我可以保证,这么理解绝对绝对的没有问题~~~~!!!

🆗,那么,其实grep这个命令并没有使用的太多必要,如果只是简单的文本搜索过滤的话,好吧,grep还是可以勉强一用的

二、

grep和egrep的基本无脑用法

示例文件,我这里选择使用本地yum仓库的xml配置文件,选择此文件的原因是数字和字母都有,比较像配置文件,其实也确实是一个配置文件

可以看到,该文件的文本特征是数字和字母混杂在一起了,有纯字母行,但没有纯数字行

[root@centos7 repodata]# cat repomd.xml 
<?xml version="1.0" encoding="UTF-8"?>
<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm"><revision>1709240060</revision>
<data type="filelists"><checksum type="sha256">406fe311374b513103fc6968c07da6f9a99b561c90871608cfd89cad119a1126</checksum><open-checksum type="sha256">ba1d9203986defbf63d9361351ed24d33aabad40a014061e669f6fa62dccd868</open-checksum><location href="repodata/406fe311374b513103fc6968c07da6f9a99b561c90871608cfd89cad119a1126-filelists.xml.gz"/><timestamp>1709240061</timestamp><size>87505</size><open-size>935761</open-size>
</data>
<data type="primary"><checksum type="sha256">8595bbc4226db56075dfaf6317e5effd7f92f18d5a6d7526e77c6f6552cebf94</checksum><open-checksum type="sha256">ffc6df89c274e8925cc631ead5f6cfe9435a193c22d5b22a9c99b400a51d881a</open-checksum><location href="repodata/8595bbc4226db56075dfaf6317e5effd7f92f18d5a6d7526e77c6f6552cebf94-primary.xml.gz"/><timestamp>1709240061</timestamp><size>49182</size><open-size>444084</open-size>
</data>
<data type="primary_db"><checksum type="sha256">e65d3a6cf36df5021676d932b2a2d0b0c03e4271655c045c07e94222a5290b18</checksum><open-checksum type="sha256">c24e01dc5b3388cba3b876c64ddf9406cffb175ee3b2a7fd7e4b11a43c62a84a</open-checksum><location href="repodata/e65d3a6cf36df5021676d932b2a2d0b0c03e4271655c045c07e94222a5290b18-primary.sqlite.bz2"/><timestamp>1709240061</timestamp><database_version>10</database_version><size>115549</size><open-size>524288</open-size>
</data>
<data type="other_db"><checksum type="sha256">fb5a57bd9729ce92ea197c79fb637d77f6c2abf1bedd8e6fe8407f6582b118d3</checksum><open-checksum type="sha256">a2fb0f11d2991d2756117198c24cc5e92ddcefa763a6708b4a3f6a55c55e41ce</open-checksum><location href="repodata/fb5a57bd9729ce92ea197c79fb637d77f6c2abf1bedd8e6fe8407f6582b118d3-other.sqlite.bz2"/><timestamp>1709240061</timestamp><database_version>10</database_version><size>60744</size><open-size>296960</open-size>
</data>
<data type="other"><checksum type="sha256">f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8</checksum><open-checksum type="sha256">2708ba2eac9dff6e1118067b0b1bc42f138ccf58335c92214dcae503813e3112</open-checksum><location href="repodata/f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8-other.xml.gz"/><timestamp>1709240061</timestamp><size>43373</size><open-size>319989</open-size>
</data>
<data type="filelists_db"><checksum type="sha256">258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3</checksum><open-checksum type="sha256">25a2e76fe87f7fed34ace38b0daae9de3b9b8f4aca259441d226f6633db3ab10</open-checksum><location href="repodata/258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3-filelists.sqlite.bz2"/><timestamp>1709240061</timestamp><database_version>10</database_version><size>106570</size><open-size>476160</open-size>
</data>
</repomd>

🆗,什么叫无脑呢?这里自然说的是不需要绞尽脑汁想正则表达式,也就是跟cat命令一样,仅仅查看文本文档的内容

说明:空单引号表示没有字符串过滤,自然就是取的所有文本内容了,通过管道符结合tail -n 10 回显了该文件的最后10行,其实这个命令等同于cat repomd.xml|tail -n 10

[root@centos7 repodata]# grep '' repomd.xml |tail -n 10
<data type="filelists_db"><checksum type="sha256">258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3</checksum><open-checksum type="sha256">25a2e76fe87f7fed34ace38b0daae9de3b9b8f4aca259441d226f6633db3ab10</open-checksum><location href="repodata/258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3-filelists.sqlite.bz2"/><timestamp>1709240061</timestamp><database_version>10</database_version><size>106570</size><open-size>476160</open-size>
</data>
</repomd>

自然的,egrep的效果和grep是一模一样的,无需废话多言:

[root@centos7 repodata]# egrep '' repomd.xml |tail -n 10
<data type="filelists_db"><checksum type="sha256">258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3</checksum><open-checksum type="sha256">25a2e76fe87f7fed34ace38b0daae9de3b9b8f4aca259441d226f6633db3ab10</open-checksum><location href="repodata/258ab32bd065ef14ed56b34a06798c95ee2de2652b83dce93a3cd8d62928d3c3-filelists.sqlite.bz2"/><timestamp>1709240061</timestamp><database_version>10</database_version><size>106570</size><open-size>476160</open-size>
</data>
</repomd>

三、

反向过滤 -v   逻辑符 not

egrep 过滤,去除所有带数字的行,只保留纯字母行

[root@centos7 repodata]# egrep -v '[0-9]' repomd.xml 
<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
<data type="filelists">
</data>
<data type="primary">
</data>
<data type="primary_db">
</data>
<data type="other_db">
</data>
<data type="other">
</data>
<data type="filelists_db">
</data>
</repomd>

同样的,过滤去除所有带字母的行,只保留纯数字行(没有纯数字行,因此没有输出):

[root@centos7 repodata]# egrep -v '[a-z]' repomd.xml 
[root@centos7 repodata]# 

四、

过滤单词  完全精确匹配 -w

###说明:sed命令精确匹配要写很多,比较麻烦

[root@centos7 repodata]# egrep -w 'size' repomd.xml <size>87505</size><open-size>935761</open-size><size>49182</size><open-size>444084</open-size><size>115549</size><open-size>524288</open-size><size>60744</size><open-size>296960</open-size><size>43373</size><open-size>319989</open-size><size>106570</size><open-size>476160</open-size>[root@centos7 repodata]# egrep -w 'siz' repomd.xml ###这个无输出回显

五、

匹配行显示行号

过滤的同时显示行号 -n 显示行号

[root@centos7 repodata]# egrep -n -v '[0-9]' repomd.xml 
2:<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
4:<data type="filelists">
11:</data>
12:<data type="primary">
19:</data>
20:<data type="primary_db">
28:</data>
29:<data type="other_db">
37:</data>
38:<data type="other">
45:</data>
46:<data type="filelists_db">
54:</data>
55:</repomd>
[root@centos7 repodata]# cat repomd.xml |egrep -n -v '[0-9]'
2:<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
4:<data type="filelists">
11:</data>
12:<data type="primary">
19:</data>
20:<data type="primary_db">
28:</data>
29:<data type="other_db">
37:</data>
38:<data type="other">
45:</data>
46:<data type="filelists_db">
54:</data>
55:</repomd>

 🆗,这里就有意思了,egrep可以回显上下文

行号+上下文回显  -C 1 显示匹配行的上下文各一行 数字按需指定

[root@centos7 repodata]# egrep -C 1 -n  -w 'other' repomd.xml 
31-  <open-checksum type="sha256">a2fb0f11d2991d2756117198c24cc5e92ddcefa763a6708b4a3f6a55c55e41ce</open-checksum>
32:  <location href="repodata/fb5a57bd9729ce92ea197c79fb637d77f6c2abf1bedd8e6fe8407f6582b118d3-other.sqlite.bz2"/>
33-  <timestamp>1709240061</timestamp>
--
37-</data>
38:<data type="other">
39-  <checksum type="sha256">f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8</checksum>
40-  <open-checksum type="sha256">2708ba2eac9dff6e1118067b0b1bc42f138ccf58335c92214dcae503813e3112</open-checksum>
41:  <location href="repodata/f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8-other.xml.gz"/>
42-  <timestamp>1709240061</timestamp>

行号+上下文回显  -A 1 显示匹配行的下文一行  数字按需指定

[root@centos7 repodata]# egrep -A 1 -n  -w 'other' repomd.xml 
32:  <location href="repodata/fb5a57bd9729ce92ea197c79fb637d77f6c2abf1bedd8e6fe8407f6582b118d3-other.sqlite.bz2"/>
33-  <timestamp>1709240061</timestamp>
--
38:<data type="other">
39-  <checksum type="sha256">f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8</checksum>
--
41:  <location href="repodata/f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8-other.xml.gz"/>
42-  <timestamp>1709240061</timestamp>

行号+上下文回显  -B 1 显示匹配行的上文一行 数字按需指定

[root@centos7 repodata]# egrep -B 1 -n  -w 'other' repomd.xml 
31-  <open-checksum type="sha256">a2fb0f11d2991d2756117198c24cc5e92ddcefa763a6708b4a3f6a55c55e41ce</open-checksum>
32:  <location href="repodata/fb5a57bd9729ce92ea197c79fb637d77f6c2abf1bedd8e6fe8407f6582b118d3-other.sqlite.bz2"/>
--
37-</data>
38:<data type="other">
--
40-  <open-checksum type="sha256">2708ba2eac9dff6e1118067b0b1bc42f138ccf58335c92214dcae503813e3112</open-checksum>
41:  <location href="repodata/f31c3eb35c261d4437cfa9dc1fef589cd0142ce2575cedc6ccca0e9c355c48f8-other.xml.gz"/>

六、

特征匹配

正则表达式 以">结束的行 

[root@centos7 repodata]# egrep -n '.*">$' repomd.xml 
2:<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
4:<data type="filelists">
12:<data type="primary">
20:<data type="primary_db">
29:<data type="other_db">
38:<data type="other">
46:<data type="filelists_db">

 

以</ 开始的行

[root@centos7 repodata]# egrep -n '^</' repomd.xml 
11:</data>
19:</data>
28:</data>
37:</data>
45:</data>
54:</data>
55:</repomd>

很多时候,查看配置文件的时候,不想看那些以#开始的注释文件,那么egrep将会非常简单:

下面一个是不过滤#开始的行,一个是过滤掉#开始的行

[root@centos7 ~]# egrep '^#'  /etc/selinux/config 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
[root@centos7 ~]# egrep -v '^#'  /etc/selinux/config SELINUX=disabled
SELINUXTYPE=targeted 

 

 七、

递归目录匹配并忽略大小写

egrep -r 递归扫描  -i 忽略大小写  搜索/etc/目录下所有包含root这个单词的文件

Binary file /etc/aliases.db matches
[root@centos7 repodata]# egrep -r -i 'root' /etc/ |more
/etc/fstab:/dev/mapper/centos-root /                       xfs     defaults        0 0
/etc/pki/ca-trust/ca-legacy.conf:# The upstream Mozilla.org project tests all changes to the root CA
/etc/pki/ca-trust/ca-legacy.conf:# to temporarily keep certain (legacy) root CA certificates trusted,
/etc/pki/ca-trust/ca-legacy.conf:#   It may keep root CA certificate as trusted, which the upstream 
/etc/pki/ca-trust/extracted/README:root CA certificates.
/etc/pki/ca-trust/extracted/java/README:root CA certificates.
Binary file /etc/pki/ca-trust/extracted/java/cacerts matches
/etc/pki/ca-trust/extracted/openssl/README:root CA certificates.
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Actalis Authentication Root CA
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# AddTrust External Root
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# AddTrust Low-Value Services Root
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Amazon Root CA 1
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Amazon Root CA 2
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt:# Amazon Root CA 3

八、

搜索包含有5个连续数字的行,5个数字后接的是<    可以看到有10位数字被匹配到了,并不是十分准确

[root@centos7 repodata]# egrep  '[.*[:digit:]]{5}<' repomd.xml <revision>1709240060</revision><timestamp>1709240061</timestamp><size>87505</size><open-size>935761</open-size><timestamp>1709240061</timestamp><size>49182</size><open-size>444084</open-size><timestamp>1709240061</timestamp><size>115549</size><open-size>524288</open-size><timestamp>1709240061</timestamp><size>60744</size><open-size>296960</open-size><timestamp>1709240061</timestamp><size>43373</size><open-size>319989</open-size><timestamp>1709240061</timestamp><size>106570</size><open-size>476160</open-size>

[:alnum:] 匹配字母和数字.等同于A-Za-z0-9.

[:alpha:] 匹配字母. 等同于A-Za-z.

[:blank:] 匹配一个空格或是一个制表符(tab).

[:cntrl:] 匹配控制字符.

[:digit:] 匹配(十进制)数字. 等同于0-9.

[:graph:] (可打印的图形字符). 匹配 ASCII 码值的33 - 126之间的字符. 这和下面提到的
   [:print:]一样,但是不包括空格字符.

[:lower:] 匹配小写字母. 等同于a-z.

[:print:] (可打印字符). 匹配 ASCII码值 32 - 126之间的字符. 这和上面提到的一样
   [:graph:],但是增多一个空格字符.

[:space:] 匹配空白字符 (空格符和水平制表符).

[:upper:] 匹配大写字母. 等同于A-Z.

[:xdigit:] 匹配十六进制数字. 等同于0-9A-Fa-f.

 

相关文章:

Linux技巧|centos7|重新认识和学习egrep和grep命令

前言&#xff1a; 相信提高文本检索工具&#xff0c;大家脑海里肯定有很多工具会自动跳出来&#xff0c;比如&#xff0c;grep&#xff0c;egrep&#xff0c;sed&#xff0c;cat&#xff0c;more&#xff0c;less&#xff0c;cut&#xff0c;awk&#xff0c;vim&#xff0c;vi…...

css实现背景渐变叠加

线性渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#fff 30%),linear-gradient(to right,pink,skyblue);}径像渐变效果图&#xff1a; .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#…...

Unity(第二十四部)UI

在游戏开发中&#xff0c;用户界面&#xff08;UI&#xff09;是至关重要的一部分。它负责与玩家进行交互&#xff0c;提供信息&#xff0c;并增强游戏的整体体验。Unity 提供了强大的工具和功能来创建和管理 UI。 ui的底层就是画布&#xff0c;创建画布的时候会同时创建一个事…...

VSCode通过SSH连接Docker环境进行开发

文章目录 VSCode 插件Docker 镜像构建镜像部署环境 VSCode 连接本地Docker容器VSCode SSH连接Docker容器VSCode 打开容器内目录文件 VSCode 插件 Remote - SSH Docker 镜像 https://hub.docker.com/_/golang # Golang 镜像 docker pull golang:1.22构建镜像 Dockerfile F…...

【QT】QTableView或QTableWidget 搭配QLineEdit实现数据的搜索显示

在 Qt 中&#xff0c;QTableView 和 QTableWidget 都可以用来实现数据的搜索和显示&#xff0c;但它们的适用场景和实现方式有所不同&#xff1a; QTableView 适用场景&#xff1a;QTableView 适用于更复杂的场景&#xff0c;尤其是当需要处理大量数据或需要高度定制化的表格时…...

Apache Flink连载(三十五):Flink基于Kubernetes部署(5)-Kubernetes 集群搭建-1

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 ​编辑...

快速幂(c++题解)

题目描述 我们通常把a的b次方记作a^b&#xff0c;为了方便&#xff0c;我们经常直接使用C内置函数pow(a,b)来完成这个工作&#xff0c;但a的b次方就是把a垒乘b次&#xff0c;时间复杂度为O(b)&#xff0c;当b值很大时&#xff0c;将会耗去大量时间&#xff0c;所以请同学们不能…...

C#单向链表实现:Append,Move,Delete,InsertAscending, InsertUnAscending,Clear

目录 一、链表定义 二、链表设计 1.先定义一个结点类&#xff08;Node&#xff09; 2.再定义链表类&#xff08;LinkedList&#xff09;并依次设计其方法 3.再实现删除方法 4.再实现Insert 的方法 5.再增加InsertAscending升序插入 6.再增加 InsertUnAscending 的方法…...

python基础-基本数据类型深入-2.1

目录 元组 什么是元组&#xff08;tuple&#xff09; 元组练习-1 元组的基本操作 元组常用内建函数 列表和元组的区别与总结 元组练习-2 元组练习-3 元组 什么是元组&#xff08;tuple&#xff09; 与列表&#xff08;list&#xff09;一样&#xff0c;元组&#xff0…...

Android LiveData Cannot add the same observer with different lifecycles

https://www.yxhuang.com/2022/05/29/livedata-add-some-observer-error/ 这篇文章已经解释的很好了。 其实在去年我写的文章&#xff0c; https://blog.csdn.net/jzlhll123/article/details/126593235 中提到了&#xff0c; 其实不论是java或者kotlin&#xff0c;不引用外部的…...

MongoDB聚合运算符:$cmp

文章目录 语法用法举例 $cmp聚合运算符返回连个值的比较结果。 语法 { $cmp: [ <expression1>, <expression2> ] }表达式可以是任何类型&#xff0c;使用标准的BSON比较顺序对不同类型的值进行比较。 用法 $cmp对两个值进行比较&#xff0c;返回&#xff1a; …...

【C++基础知识详细记录】

一、基础知识 C基础知识点的汇总涵盖了许多方面&#xff0c;包括但不限于以下内容&#xff1a; 1. 常量定义 使用#define宏定义常量&#xff1a; #define PI 3.14159265358979323846 // 宏定义一个浮点型常量PI使用const关键字定义常量&#xff1a; const int MAX_SIZE 100;…...

Socket网络编程(五)——TCP数据发送与接收并行

目录 主要实现需求TCP 服务端收发并行重构启动main方法重构重构分离收发消息的操作重构接收消息的操作重构发送消息TCPServer调用发送消息的逻辑监听客户端链接逻辑重构Socket、流的退出与关闭 TCP 客户端收发并行重构客户端 main函数重构客户端接收消息重构客户端发送消息重构…...

2024最新-ubuntu22.04安装最新版QT6.6~6.8教程

​ 1. 在官网下载 online_installer&#xff1a; https://download.qt.io/archive/online_installers/4.7/qt-unified-linux-x64-4.7.0-online.run 或者直接镜像站下载&#xff1a; http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/4.7/qt-unified-linux-x6…...

STM32------分析GPIO寄存器

一、初始LED原理图 共阴极led LED发光二极管&#xff0c;需要有电流通过才能点亮&#xff0c;当有电压差就会产生电流 二极管两端的电压差超过2.7v就会有电流通过 电阻的作用 由于公式IV/R 不加电阻容易造成瞬间电流无穷大 发光二极管工作电流为10-20MA 3.3v / 1kΩ 3.…...

数学实验-Matlab使用(1)

使用方法以及笔记均在文件中 class1_func1.m function f class1_func1(x) % f为输出&#xff0c;输出有多个时需要用中括号以矩阵的方式包起来 % x为输入f sin(x)class1_func2.m function [a,b,u,v] class1_func2(x,y)[a,b] eig(x)[u,v] eig(y)class1.m % 当语句后有…...

kafka文件存储机制和消费者

1.broker文件存储机制 去查看真正的存储文件&#xff1a; 在/opt/module/kafka/datas/ 路径下 kafka-run-class.sh kafka.tools.DumpLogSegments --files ./00000000000000000000.index 如果是6415那么这个会存储在563的log文件之中&#xff0c;因为介于6410和10090之间。 2.…...

《汇编语言》- 读书笔记 - 第15章-外中断

《汇编语言》- 读书笔记 - 第15章-外中断 15.1 接口芯片和端口15.2 外中断信息1. 可屏蔽中断&#xff08;Maskable Interrupt&#xff09;2. 不可屏蔽中断&#xff08;Non-Maskable Interrupt&#xff09;设计思想 15.3 PC 机键盘的处理过程1. 键盘输入2. 引发 9 号中断3. 执行…...

【Vue3】CSS 新特性

:slotted <template> <!-- App.vue--><Son ><div class"a">我要插入了</div></Son> </template><script setup lang"ts"> import Son from ./components/Son.vue </script><style></sty…...

四信水电站泄洪预警方案,精准提升防汛应急水平

2022年5月水利部办公厅发布《关于开展水库泄洪设施专项排查整改的紧急通知》&#xff0c;为坚决贯彻落实关于水库大坝安全的重要指示批示精神、关于保障水库泄洪通道通畅的批示要求&#xff0c;全力防范水库可能出现的重大险情&#xff0c;确保水库安全度汛。 2023年3月国家能源…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...