千家信息网

shell正则表达式

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Shell脚本扩展一 正确表达式正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。1. 支持的命令:grep、vim、find、awk、sed等。1、.代表任意单个字符, 如:/l..e
千家信息网最后更新 2026年10月31日shell正则表达式

Shell脚本扩展

一 正确表达式

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

1. 支持的命令:

grep、vim、find、awk、sed等。

1、.代表任意单个字符, 如:/l..e/与包含一个l,后跟两个字符,然后跟一个e的行相匹配

检索wang.txt文件中匹配s字符的。

2、^代表行的开始。 ^love 如:与所有love开头的行匹配

检索wang.txt文件中以N开头的。

3、$代表行的结束。love$ 如:与所有love结尾的行匹配

那么'^$' 就表示空行

通配符

检索wang.txt文件中匹配小写字母a到z之间的。

注意:

[abc]表示匹配单个字符a或b或c

[123]表示匹配单个字符1或2或3

[A-Z]表示匹配大写字母A-Z之间一个

[^a]表示取反,匹配除去小写字母a的。

5、* 用于修饰前导字符,表示前导字符出现0次或任意多次

检索wang.txt文件中出现0次或多次T的

6、\? 用于修饰前导字符,表示前导字符出现0或1次


7、\+ 用于修饰前导字符,表示前导字符出现1或多次

8、\{n,m\} 用于修饰前导字符,表示前导字符出现n至m次 (n和m都是整数,且n

表示前导字符出现n至m次;

n/m为整数,并且m>n;

其他形式:

\{n\}连续的n个前导字符;

\{n,\}连续的至少n个前导字符;


检索wang.txt文件中出现2至4个n的

9、\ 用于转义紧跟其后的单个特殊字符,使该特殊字符成为普通字符

检索wang.txt文件中含有.的。

10、|表示或 如: a|b|c 匹配a或b或c。如:grep|sed匹配grep或sed

检索wang.txt文件中含有a或b的。

11、(),将部分内容合成一个单位组,比如 要搜索 glad 或 good 可以如下 'g(la|oo)d'

二、grep命令的用法

参数:

1. -A NUM,--after-context=NUM 除了列出符合行之外,并且列出后NUM行。

列出chai.txt文件中Tom行与后俩行

2. -B NUM,--before-context=NUM 与 -A NUM 相对,但这此参数是显示除符合行之外并显示在它之前的NUM行。


列出chai.txt文件中Tom行与前俩行。

3、 -C [NUM], -NUM, --context[=NUM] 列出符合行之外并列出上下各NUM行,默认值是2。

列出chai.txt文件中Tom行与前后俩行。

4、 -c, --count 不显示符合样式行,只显示符合的总行数。若再加上-v,--invert-match,参数显示不符合的总行数

列出chai.txt文件中含有Tom的行数;

列出chai.txt文件中不含有Tom的行数。

5、-i,--ignore-case 忽略大小写差别

列出chai.txt文件中含有tom(大小写)的行。

6、-n,--line-number 在匹配的行前面打印行号

列出chai.txt文件中含有tom(大小写)的行,并且打印出行号。

7、-v,--revert-match 反检索,只显示不匹配的行

列出chai.txt文件中不含有tom的行。

8、精确匹配:

例如在抽取字符串" 48",返回结果包含诸如484和483等包含"48"的其他字符串,实际上应精确抽取只包含48的各行。

精确列出chai.txt文件中含有30的行。

9、-s 不显示不存在或无匹配文本的错误信

xin.txt文件不存在,检索时候提示搜索不到的错误信息,

如果不要错误信息提示,则加上-s。

三、sed命令的用法

1sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

2把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。

3文件内容并没有改变,除非你使用重定向存储输出。

1.替换: s命令
1.1 基本用法

把chai.txt中The替换成chai,输出到aaa.txt文件中。

sed 替换命令

/../../分隔符(可以用其他符合代替)

The 搜索的字符串

chai 替换的字符串

<chai.txt> 搜索的文件

aaa.txt 输出到的文件

1.2 用 & 表示匹配的字符串

有时可能会想在匹配到的字符串周围或附近加上一些字符 .
如: sed 's/abc/(abc)/' new


sed 默认只替换搜索字符串的第一次出现 , 利用 /g 可以替换搜索字符串所有

如果需要对同一文件或行作多次修改,可以使用 "-e" 选项

3.删除行:d命令

从某文件中删除包含 "how" 的所有行

将passwd内容显示并打印行号,同时删除2到5行。

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号。

4.增加行:a命令(在指定的行后新增)或i命令(在指定的行前新增)

a的后面可以接字符串,而这些字符串会在新的一行出现

在/etc/passwd的第二行后增加"XXXXX"字样的新行

将passwd内容显示并打印行号,同时在第二行后新增hello。


将passwd内容显示并打印行号,同时在第二行前新增hello。

如果要同时新增多行,则每行之间要用反斜杠\来进行新行的添加

5、取代行:c命令

c的后面可以接字符串,这些字符串可以取代n1,n2之间的行

取代行

将passwd内容显示并打印行号,同时取代2到5行间内容。

6、打印:p命令

sed '/north/p' datafile 默认输出所有行,找到north的行重复打印

仅列出passwd文件中的第5到7行内容。

sed 的-i选项可以直接修改文件中的内容


6.扩展:

调用sed有三种方式:

l 在命令行键入命令

l 将sed命令插入脚本文件,然后调用sed

l 将sed命令插入脚本文件,并使sed脚本可执行。

A、 使用sed命令行格式为:

sed [选项] sed命令 输入文件。

记住在命令行使用sed命令时,实际命令要加单引号。sed也允许加双引号。

B、使用sed脚本文件,格式为:

sed [选项] -f sed脚本文件 输入文件

C、要使用第一行具有sed命令解释器的sed脚本文件,其格式为:

sed脚本文件 [选项] 输入文件


第一行是sed命令解释行。脚本在这一行查找sed以运行命令,这里定位在/bin。

第二行以/company/开始,这是附加操作起始位置。a\通知sed

是一个附加操作,首先应插入二个新行。

第三、四行是附加操作要加入到拷贝的实际文本。






文件 字符 命令 内容 字符串 前导 脚本 检索 搜索 一行 行号 处理 同时 输出 之间 单个 缓冲区 缓冲 精确 代表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 手冲咖啡和咖啡机区别 互联网科技有限公司 北京互联网科技公司 互联网科技公司官网 远拓互联网科技 西安互联网科技公司 深圳期待互联网科技 四川狮子座互联网科技 互联网科技公司做什么 成都玖崟互联网科技有限公司乐商圈怎么样 字节跳动和互联网科技 重庆互联网医院沙龙医盟信息科技 米聚互联网科技南京有限公司排面 中国科技创新与世界互联网大会 上海钢联属于互联网科技股吗 广东工业互联网大赛深圳学泰科技 数字科技和互联网金融哪个好 重庆科技产业互联网有哪些 互联网的黑科技实验室 互联网科技公司简介 互联网电商科技 互联网金融 金融科技 卓越科技(互联网 ) 湖南一路畅行互联网科技 乌苏新华互联网科技做什么的 长沙茂晟互联网科技有限公司 浙南科技城互联网大厦招聘 互联网科技股为什么大涨 安徽九吞吴互联网科技有限公司
0