文本匹配.grep与Select-String用法对比

Linux Shell与PowerShell上匹配字符串
grep与Select-String用法对比

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at CSDN: https://jclee95.blog.csdn.net
My WebSitehttp://thispage.tech/
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/139253970
HuaWei:https://bbs.huaweicloud.com/blogs/428150

【介绍】:grep用于在 Linux 和其他类 Unix 系统中搜索文本。Select-String 是 PowerShell 中用于搜索和匹配文本的cmdlet。它提供了类似于 grep 的功能。现在将两者放在一起做个总结。

在这里插入图片描述


1. 用法简介

在文本搜索方面,Linux 和 PowerShell 提供了各自强大的工具。grep 是 Linux 中用于搜索文本的命令行工具,而 Select-String 是 PowerShell 中用于搜索文本的 cmdlet,功能类似于 grep

1.1 grep 命令

grep(Global Regular Expression Print)用于在 Linux 和其他类 Unix 系统中搜索文本。它可以在一个或多个文件中查找包含指定模式的行,并将匹配的行输出到标准输出。grep 支持正则表达式,提供了多种选项来控制搜索行为和输出格式。

grep 命令的基本格式如下:

grep [OPTIONS] PATTERN [FILE...]

其中,OPTIONS 表示可选的命令行选项,PATTERN 表示要搜索的模式(可以是普通字符串或正则表达式),FILE 表示要搜索的一个或多个文件。如果未指定文件,grep 将从标准输入读取文本。

1.2 Select-String 命令

Select-StringPowerShell 中用于搜索和匹配文本的 cmdlet。它提供了类似于 grep 的功能,可以在文件、字符串或管道输入中查找指定的模式。Select-String 支持正则表达式和通配符,并提供了各种参数来控制搜索行为和输出格式。

Select-String 命令的基本格式如下:

Select-String [-Path] <string[]> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]Select-String -InputObject <psobject> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]

其中:

  • -Pattern 参数指定要搜索的模式(可以是普通字符串或正则表达式);
  • -Path 参数指定要搜索的一个或多个文件。

Select-String 还提供了其他参数,如 -SimpleMatch(简单字符串匹配)、-CaseSensitive(区分大小写)、-Quiet(仅返回布尔值)等,用于控制搜索行为和输出格式。

2. grep详细用法与示例

2.1 基本用法

Linux上,grep命令用于在每个文件中搜索指定的模式。其基本使用格式为:

grep [选项]... 模式 [文件]...

grep命令会在指定的文件中查找匹配的模式,并输出包含该模式的行。如果未指定文件,grep会从标准输入读取数据。

例如,下面的命令在menu.hmain.c文件中搜索不区分大小写的字符串“hello world”:

grep -i 'hello world' menu.h main.c

在这个例子中:

  • -i选项表示忽略大小写,因此Hello, HELLO,或hello都能匹配模式hello world
  • 'hello world'是要搜索的模式。
  • menu.hmain.c是要搜索的文件。

这条命令会输出包含“hello world”的所有行,无论这些行中的“hello world”是大写、小写还是混合大小写。

2.2 模式

其中,模式可以包含多个由换行符分隔的模式。模式选择及其解释如下:

  -E, --extended-regexp     模式为扩展正则表达式-F, --fixed-strings       模式为字符串-G, --basic-regexp        模式为基本正则表达式-P, --perl-regexp         模式为Perl正则表达式-e, --regexp=模式         使用指定的模式进行匹配-f, --file=文件           从文件中获取模式-i, --ignore-case         忽略模式和数据中的大小写区别--no-ignore-case      不忽略大小写区别(默认)-w, --word-regexp         仅匹配整个单词-x, --line-regexp         仅匹配整个行-z, --null-data           数据行以0字节结束,而不是换行符
杂项:-s, --no-messages         抑制错误消息-v, --invert-match        选择不匹配的行-V, --version             显示版本信息并退出--help                显示此帮助文本并退出

【注】:在接下来的示例中,输出结果中的颜色是由 grep 命令自动添加的,用于突出显示匹配的部分。这是 grep 的一个特性,称为 “颜色输出”。
当在终端中运行 grep 命令时,它会自动检测是否支持颜色输出,并相应地着色。
可以参考2.4.3小节。

2.2.1 例:使用扩展正则表达式

使用-E选项,可以使用扩展正则表达式。

例如,以下命令会在file.txt中搜索匹配任意一个字母后跟一个数字的字符串:

grep -E '[a-zA-Z][0-9]' file.txt

再如,搜索包含一个到三个’a’字符的模式。

echo "aaa abbb aaaa" | grep -E 'a{1,3}'

输出为:
在这里插入图片描述

在输出结果 “aaa abbb aaaa” 中:

  • 第一部分 “aaa” 匹配正则表达式,因为它包含连续的三个 ‘a’ 字符,所以显示为红色;

  • 第二部分 “abbb” 不匹配正则表达式,因为 ‘a’ 后面没有连续的 ‘a’ 字符,所以显示为白色。

  • 第三部分 “aaaa” 匹配正则表达式,因为它包含连续的四个 ‘a’ 字符,前三个 ‘a’ 匹配,所以前三个 ‘a’ 显示为红色,剩下的 ‘a’ 显示为白色。

2.2.2 例:将模式视为固定字符串

搜索包含确切字符串’a*b’的行。

echo "a*b a b" | grep -F 'a*b'

结果为:
在这里插入图片描述

2.2.3 例:从文件中获取模式

echo "hello" > patterns.txt
echo "world" >> patterns.txt
echo "hello world" | grep -f patterns.txt

2.2.4 例:忽略大小写

echo "Hello WORLD" | grep -i 'hello'

结果为:

在这里插入图片描述

2.2.5 例: 选择不匹配的行

echo "hello world
hello universe
goodbye world
hello hello" | grep -v 'hello'

在这个例子中,我们使用 echo 命令生成了一个包含多行文本的字符串,每行文本之间用换行符 \n 分隔。然后,我们使用管道将这个多行文本传递给 grep -v 'hello' 命令。

-v 选项表示 “反转匹配”,即选择不包含指定模式的行。在这里,grep -v 'hello' 会输出所有不包含 “hello” 的行。

输出结果为:

goodbye world

2.2.6 例: 匹配整行

-x 选项用于匹配整行,即只有当整行完全匹配指定的模式时才会被选中。例如:

echo "hello
hello world
world
hello hello" | grep -x 'hello'

输出结果为:

hello

在这个例子中,我们使用 echo 命令生成了一个包含多行文本的字符串,每行文本之间用换行符 \n 分隔。然后,我们使用管道将这个多行文本传递给 grep -x 'hello' 命令。

-x 选项表示 “匹配整行”,即只有当一行文本完全匹配指定的模式时才会被选中。在这里,grep -x 'hello' 会输出完全匹配 “hello” 的行。

其中,只有第 1 行完全匹配 “hello”,所以被选中并输出。其他行虽然包含 “hello”,但并不是完全匹配,所以被过滤掉了。

2.3 输出控制

grep命令中也可以通过下面的选项对输出内容进行控制:

  -m, --max-count=NUM       在选择NUM行后停止-b, --byte-offset         打印输出行的字节偏移量-n, --line-number         打印输出行的行号--line-buffered       在每行后刷新输出-H, --with-filename       打印输出行的文件名-h, --no-filename         输出时不显示文件名前缀--label=LABEL         使用LABEL作为标准输入文件名前缀-o, --only-matching       仅显示匹配的非空部分-q, --quiet, --silent     抑制所有正常输出--binary-files=TYPE   假定二进制文件为TYPE;TYPE可以是'binary'(二进制)、'text'(文本)或'without-match'(无匹配)-a, --text                等同于--binary-files=text-I                        等同于--binary-files=without-match-d, --directories=ACTION  如何处理目录;ACTION可以是'read'(读取)、'recurse'(递归)或'skip'(跳过)-D, --devices=ACTION      如何处理设备、FIFO和套接字;ACTION可以是'read'(读取)或'skip'(跳过)-r, --recursive           等同于--directories=recurse-R, --dereference-recursive  同样,但跟随所有符号链接--include=GLOB        仅搜索匹配GLOB(文件模式)的文件--exclude=GLOB        跳过匹配GLOB的文件--exclude-from=FILE   跳过匹配FILE中的任何文件模式的文件--exclude-dir=GLOB    跳过匹配GLOB的目录-L, --files-without-match  仅打印没有选中行的文件名-l, --files-with-matches  仅打印有选中行的文件名-c, --count               每个文件仅打印选中行的计数-T, --initial-tab         对齐制表符(如有需要)-Z, --null                在文件名后打印0字节

2.3.1 例: 限制输出行数

seq 10 | grep -m 3 -E '[0-9]'

输出结果为:

1
2
3

在这个例子中,我们使用seq命令生成1到10的整数序列,然后通过管道传递给grep -m 3 -E '[0-9]'命令。

-m 3选项表示最多输出匹配的前3行. -E '[0-9]'使用正则表达式匹配所有包含数字的行。

2.3.2 例: 显示匹配内容的字节偏移

echo "hello world" | grep -b 'world'

输出结果为:

hello world

在这里插入图片描述

-b选项会在输出的每一行前面显示该行在原始输入中的字节偏移量。在这个例子中,"world"在输入字符串中的起始字节位置为6。

2.3.3 例: 显示行号

seq 10 | grep -n -E '[24680]$' 

-n选项会在输出的每一行前面显示该行在原始输入中的行号. 在这个例子中,我们匹配所有以偶数结尾的行。输出结果为:

2:2
4:4
6:6
8:8
10:10

在这里插入图片描述

2.4 上下文控制

上下文控制是指在输出匹配行的同时,也输出匹配行前后的一些行作为上下文,以便更好地理解匹配行在原始文本中的位置和含义。grep提供了一些选项来控制输出的上下文行数和格式。

  -B, --before-context=NUM  打印匹配前NUM行的上下文-A, --after-context=NUM   打印匹配后NUM行的上下文-C, --context=NUM         打印匹配前后各NUM行的上下文-NUM                      等同于--context=NUM--group-separator=SEP  在带有上下文的匹配行之间打印分隔符SEP--no-group-separator  不打印带有上下文的匹配行的分隔符--color[=WHEN],--colour[=WHEN]       使用标记突出显示匹配的字符串;WHEN可以是'always'(总是)、'never'(从不)或'auto'(自动)-U, --binary              不去除行尾的CR字符(MSDOS/Windows)

2.4.1 例: 输出匹配行前后的行作为上下文

seq 10 | grep -A 2 -B 2 '5'
  • -A 2选项表示输出匹配行后的2行作为上下文;
  • -B 2选项表示输出匹配行前的2行作为上下文;
    因此,这个命令会输出匹配行'5'以及它前后各2行。输出结果为:
3
4
5
6
7

在这里插入图片描述

2.4.2 例: 使用-C选项控制上下文行数

seq 10 | grep -C 1 '5'

-C 1选项等同于-A 1 -B 1,表示输出匹配行前后各1行作为上下文。出结果为:

4
5
6

在这里插入图片描述

2.4.3 例: 使用–color选项高亮匹配的字符串

--color=always选项会使用标记突出显示匹配的字符串,以便更容易识别匹配的位置。例如:

echo "Hello World" | grep --color=always 'World'

你可以尝试在终端中运行这个命令,看看’World’是否被高亮显示:

在这里插入图片描述

3. Select-String详细用法与示例

Select-String 是 PowerShell 中用于搜索和匹配文本的cmdlet。它提供了类似于 grep 的功能,可以在文件、字符串或管道输入中查找指定的模式。Select-String 支持正则表达式和通配符,并提供了各种参数来控制搜索行为和输出格式。

3.1 格式与参数

Select-String的基本格式如下:

Select-String [-Path] <string[]> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]Select-String -InputObject <psobject> [-Pattern] <string[]> [-AllMatches] [-CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonParameters>]

3.2 用法示例

3.2.1 例: 在文件中搜索模式

Select-String -Pattern 'hello' -Path 'file.txt'

file.txt 文件中搜索包含 “hello” 的行。

3.2.2 例: 在文件中搜索模式

"hello world", "hello universe", "goodbye world" | Select-String -Pattern 'hello'

在给定的字符串数组中搜索包含 “hello” 的行。输出结果为:
在这里插入图片描述

3.2.3 例: 区分大小写

通过 -CaseSensitive 选项可以指定是否区分大小写。默认情况下,Select-String 不区分大小写,这意味着它会匹配模式的任何大小写组合。使用 -CaseSensitive 选项可以强制 Select-String 进行区分大小写的匹配。

"Hello world", "hello universe" | Select-String -Pattern 'hello' -CaseSensitive

在这里插入图片描述

3.2.4 例: 简单字符串匹配

"hello*world", "hello world" | Select-String -Pattern 'hello*world' -SimpleMatch

3.2.5 例: 简单字符串匹配

通过 -SimpleMatch 选项可以指定 Select-String 进行简单字符串匹配,而不是使用正则表达式。默认情况下,Select-String 会将模式解释为正则表达式。如果你希望进行简单的字符串匹配,可以使用 -SimpleMatch 选项。例如:

"hello*world", "hello world" | Select-String -Pattern 'hello*world' -SimpleMatch

输出结果为:

hello*world

在这个例子中,我们有一个包含两行文本的字符串数组:

  1. “hello*world”

  2. “hello world”

我们使用管道将这个字符串数组传递给 Select-String 命令,并指定 -Pattern 'hello*world'-SimpleMatch 选项。

  • -Pattern 'hello*world' 指定要搜索的模式是 “hello*world”。

  • -SimpleMatch 选项指示 Select-String 进行简单字符串匹配,而不是将模式解释为正则表达式。

由于 -SimpleMatch 选项的作用,Select-String 会将模式 “helloworld" 作为一个普通字符串进行匹配。因此,只有第一行 "helloworld” 会被匹配并输出,因为它完全包含了字符串 “hello*world”。第二行 “hello world” 不会被匹配,因为它不包含星号 *

3.2.6 例: 显示匹配的上下文行

通过 -Context 选项可以指定在输出中显示匹配行的前后上下文行。这在需要查看匹配行周围的内容时非常有用。

"line1", "line2 hello", "line3", "line4 hello", "line5" | Select-String -Pattern 'hello' -Context 1,1

输出结果为:

  line1
> line2 helloline3
> line4 helloline5

在这里插入图片描述

在这个例子中,我们有一个包含多行文本的字符串数组:

  1. “line1”
  2. “line2 hello”
  3. “line3”
  4. “line4 hello”
  5. “line5”

我们使用管道将这个字符串数组传递给 Select-String 命令,并指定 -Pattern ‘hello’ 和 -Context 1,1 选项。

-Pattern ‘hello’ 指定要搜索的模式是 “hello”。

-Context 1,1 选项指示 Select-String 显示每个匹配行的前一行和后一行。

由于 -Context 1,1 选项的作用,Select-String 会输出包含 “hello” 的行以及每个匹配行的前一行和后一行。

3.2.7 例: 搜索多个模式

通过 -Pattern 选项可以指定多个模式进行搜索。Select-String 会匹配任意一个指定的模式。

"hello world", "goodbye world" | Select-String -Pattern 'hello', 'goodbye'

搜索结果为:

hello world
goodbye world

在这里插入图片描述

在这个例子中,我们有一个包含两行文本的字符串数组: "hello world"和 “goodbye world”。

我们使用管道将这个字符串数组传递给 Select-String 命令,并指定 -Pattern 'hello', 'goodbye' 选项。

  • -Pattern 'hello', 'goodbye' 指定要搜索的模式是 “hello” 或 “goodbye”。

由于 -Pattern 选项的作用,Select-String 会输出包含 “hello” 或 “goodbye” 的行。

3.2.8 例: 只返回第一个匹配项

通过 -List 选项可以指定 Select-String 只返回每个输入中的第一个匹配项。这在你只关心第一个匹配结果时非常有用。

假设我们有两个文件 file1.txtfile2.txt,它们的内容如下:

file1.txt:

hello world
hello universe

file2.txt:

goodbye world
hello again

我们可以使用以下命令来搜索这两个文件,并只返回每个文件中的第一个匹配项:

Select-String -Pattern 'hello' -Path 'file1.txt', 'file2.txt' -List

输出结果为:

file1.txt:1:hello world
file2.txt:2:hello again

在这里插入图片描述

在这个例子中,Select-String 搜索 file1.txtfile2.txt 中包含 “hello” 的行,并使用 -List 选项只返回每个文件中的第一个匹配项。

3.2.9 例: 在指定编码的文件中搜索

Select-String -Pattern 'hello' -Path 'file.txt' -Encoding UTF8

在这个例子中,我们在名为 file.txt 的文件中搜索包含 “hello” 的行,并指定文件的编码为 UTF8。

  • -Pattern 'hello' 指定要搜索的模式是 “hello”。

  • -Path 'file.txt' 指定要搜索的文件是 file.txt。

  • -Encoding UTF8 选项指示 Select-String 使用 UTF8 编码来读取文件。

假设 file.txt 的内容如下:

hello world
goodbye world

运行上述命令的输出结果为:

file.txt:1:hello world

在这里插入图片描述

这个例子展示了如何使用 -Encoding 选项来在指定编码的文件中搜索。在处理不同编码的文件时,这可以确保 Select-String 正确读取文件内容并进行搜索。

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

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

相关文章

家居厨房安全无小事:可燃气体报警器探头校准检测重要性解析

家居厨房作为日常生活中烹饪美食的重要场所&#xff0c;其安全问题不容忽视。 近年来&#xff0c;随着家庭用气设备的普及&#xff0c;煤气泄露事件时有发生&#xff0c;给人们的生命财产安全带来了严重威胁。 因此&#xff0c;安装可燃气体报警器探头&#xff0c;及时检测并…

Python Orange3库:数据挖掘与机器学习的终极利器

更多Python学习内容&#xff1a;ipengtao.com Orange3是一个开源的数据挖掘和机器学习库&#xff0c;提供了丰富的工具和算法来处理和分析数据。Orange3的图形用户界面使得非编程用户也能轻松进行数据分析&#xff0c;而其Python API则为编程用户提供了强大的灵活性。本文将详细…

如何在线转换图片的格式?一键修改图片格式的方法

图片是日常生活和工作中的一种常用的内容展示类型&#xff0c;在使用图片的时候不同用途需要使用的图片格式也是不同的&#xff0c;比如我们手中有一张jpg格式图片&#xff0c;但是平台上传要求格式是png&#xff0c;那么怎样才能将jpg转png格式呢&#xff1f;下面将教大家图片…

模拟量4~20mA电流传感器接线方式

一、模拟量4~20mA电流传感器接线方式 无源双线制是常见的电流型传感器接线方式&#xff0c;它具有简单、经济的特点。其接线方式如下&#xff1a; 传感器的“”接到数据采集器的电源“”上&#xff0c; 传感器的“-”端子连接到数据采集器的“AI”端子上&#xff0c; 数据采集器…

无人机+EasyDSS互联网视频平台:构建秸秆焚烧监控的“天眼”系统

一、方案背景 在每年的夏收时节&#xff0c;秸秆禁烧成为各地政府面临的一项重要任务。随着夏收季节的结束&#xff0c;大量农作物秸秆的处理问题逐渐凸显。一方面农作物种植面积辽阔&#xff0c;禁烧区域面积较大&#xff0c;监管巡逻人员的数量有限&#xff0c;无法全面顾及…

使用 ASM 修改字段类型,解决闪退问题

问题 我的问题是什么&#xff1f; 在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用 mUnityPlayer.destroy(); 闪退问题。 闪退日志如&#xff1a; 闪退日志说在 UnityBridgeActivity中找不到类型为 UnityPlayer 的属性 mUnityPlayer。 我们知道&#xff0c;Android…

【鸟叔的Linux私房菜】2-主机规划与磁盘分区

文章目录 2.1 Linux与硬件的搭配各硬件设备在Linux的文件名使用虚拟机学习 2.2 磁盘分区磁盘连接方式和设备文件名的关系MBR(MS-DOS)与GPT磁盘分区表MBR(MS-DOS)GPT磁盘分区表 启动流程的BIOS与UEFI启动检测程序BIOS搭配MBR/GPT的启动流程UEFI BIOS搭配 GPT启动的流程 Linux安装…

RGB 平均值统计

任务&#xff1a;有一一对应的图片多组如下&#xff0c;希望统计灰色部分原有grb平均值&#xff0c;彩色部分rgb平均值。 方法&#xff1a;由下图对各个像素分析&#xff0c;分为3类&#xff0c;并记录坐标&#xff0c;根据坐标统计上图的rgb平均值&#xff0c;结果放在一张Exc…

linux开发之设备树基本语法二

设备树特殊节点,对节点定义别名,chosen节点用来uboot给内核传参 上面的mmc0就是sdmmc0节点的别名 device_type属性 只对cpu节点和memory节点进行描述 自定义属性 这部分自定义,比如定义管脚标号,初始数值等 为什么我们可以在设备树上自己定义属性呢?设备树文件描述的是硬…

JD3-40/23漏电继电器 AC220V 50-500mA 0.1s 导轨安装

系列型号&#xff1a; JD3-40/13漏电继电器JD3-40/23漏电继电器JD3-40/33漏电继电器JD3-40/43漏电继电器 JD3-70/13漏电继电器JD3-70/23漏电继电器JD3-70/33漏电继电器JD3-70/43漏电继电器 JD3-100/23漏电继电器JD3-100/43漏电继电器JD3-100/33漏电继电器JD3-100/13漏电继电…

260 基于matlab的工业乙醇发酵GUI仿真

基于matlab的工业乙醇发酵GUI仿真。首先对经典的流加半经验半理论模型进行动态和稳态仿真&#xff0c;考虑实际情况密&#xff0c;逐步将温度&#xff0c;气体排放等因素考虑到模型中去&#xff0c;进行综合性仿真。结合GUI技术&#xff0c;以动力学模型为核心&#xff0c;制作…

svg画简单的立方体

开发背景 要开发一个拖拽的大屏项目&#xff0c;其中涉及到一个装饰组件&#xff0c;是一个立方体cube&#xff0c;要求颜色可以修改&#xff0c;大小可以拖拽改变。 效果如下 分析 经过我一番奇思妙想&#xff0c;决定用svg实现&#xff0c;因为对svg比较熟悉。那就先来在草…

柯桥成人职场英语/Excuse me 是 “不好意思”,那 Excuse you呢?

口语中&#xff0c;excuse me的使用频率非常高 甚至已经成为大家的口头禅 用在一些表示歉意或者打扰对方的场合 本来excuse me的用法就已经够丰富了 没想到竟然还有excuse you&#xff1f; 哈哈哈&#xff0c;别蒙圈 这篇就给大家捋捋excuse的那些表达 快和小编一起来学学…

【博客20】缤果Matlab串口调试助手V1.0(中级篇)

超级好用的Matlab串口调试助手 开发工具: MATLAB 2024a中文版 (编程语言matlab) 目录 前言 一、软件概要&#xff1a; 二、软件界面&#xff1a; 1.App演示 ​ ​---- ◇♣♡♠ ---- 2.其他扩展App展示 ​编辑 三、获取 >> 源码以及Git记录&#xff1a; 总结 前…

海外仓系统要多少钱?最贵的未必是最好的,性价比高的才是

海外仓系统可以说已经是现在海外仓管理不可或缺的重要工具&#xff0c;然而&#xff0c;很多海外仓企业在选择海外仓系统时最头疼的问题就是不知道到底多少钱才合适。 确实&#xff0c;现在的海外仓系统市场价格体系非常多&#xff0c;几万几十万各种定价都有&#xff0c;让人…

第13章 层次式架构设计理论与实践

层次式架构的核心思想是将系统组成为一种层次结构&#xff0c;每一层为上层服务&#xff0c;并作为下层客户。其实不管是分层还是其他的架构都是为了解耦&#xff0c;更好的复用&#xff0c;只要秉承着这种思想去理解一切都迎刃而解了。 13.1 层次上体系结构概述 回顾一下软件…

【uniapp】uniapp页面介绍

目录 开发工具&#xff1a;HBuilderX介绍特点和功能 页面简介页面管理新建页面删除页面页面改名pages.json 设置应用首页 页面内容构成template模板区script 脚本区export default 外的代码export default 里的代码 style样式区 页面生命周期Vue2 页面及组件生命周期流程图Vue3…

重生奇迹MU剑士两把单手剑

重生奇迹mu觉醒剑士在武器的选择上非常广泛&#xff0c;可以单手操作也可以双手&#xff0c;那么许多玩家觉得单手剑特别帅气&#xff0c;能否装备两个单手剑&#xff0c;感兴趣的玩家一起来看看详情介绍。 单手剑是一个单手武器&#xff0c;你可以选择装备一个单手剑&#xf…

13.Redis之数据库管理redis客户端JAVA客户端

1.数据库管理 mysql 中有一个重要的概念,database 1个 mysql 服务器上可以有很多个 database1个 database 上可以有很多个 表mysql 上可以随心所欲的 创建/删除 数据库~~ Redis 提供了⼏个⾯向 Redis 数据库的操作&#xff0c;分别是 dbsize、select、flushdb、flushall 命令…

在 GPT-4o 释放完整能力前,听听实时多模态 AI 创业者的一手经验 | 编码人声

「编码人声」是由「RTE开发者社区」策划的一档播客节目&#xff0c;关注行业发展变革、开发者职涯发展、技术突破以及创业创新&#xff0c;由开发者来分享开发者眼中的工作与生活。 5 月中旬 GPT-4o 的发布&#xff0c;让人与 AI 的交互&#xff0c;从对话框的文本交流加速推进…