Linux运维云升笔记 (一)正则表达式以及文档编辑器sed
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,正则表达式概述使用单个字符来描述、匹配一系列符合某个语句规则的字符串,由普通字符与特殊字符组成,正则表达式广泛使用在脚本编程、文本编辑器中。正则表达式简写为regex、regexp、RE。再大多数语言
千家信息网最后更新 2026年11月01日Linux运维云升笔记 (一)正则表达式以及文档编辑器sed
正则表达式概述
使用单个字符来描述、匹配一系列符合某个语句规则的字符串,由普通字符与特殊字符组成,正则表达式广泛使用在脚本编程、文本编辑器中。
正则表达式简写为regex、regexp、RE。
再大多数语言当中正则表达式都被包括在两个正斜杠当中"/"
正则表达式有一个特点"贪婪匹配":尽量匹配最长的
正则表达式分类
- 基础正则表达式
\ 转义字符。例如:"!"将逻辑否的!看做普通字符,\还可以折行例子1:[root@localhost ~]# ls -l /home \> /tmp例子2:[root@localhost ~]# grep "b.*in" a.txt 12 bin 3423 sb.*in 2344 binary 4923 binlog 23[root@localhost ~]# grep "b\.\*in" a.txt 23 sb.*in 23^ 匹配字符串开始的位置,以…为开头的
$ 匹配字符串结束的位置,以…为结尾的
^$ 表示空行,不是空格例子:[root@localhost ~]# cat a.txt aaaa bb aaa b a[root@localhost ~]# grep "^aa$" a.txt aa. 匹配任意字符串* 匹配前面子表达式(字符)0次或者多次例子:[root@localhost ~]# grep "a 0*" a.txt aa 0aa 00aa bb 0000 aa 00a b a 000
.* 匹配任意字符串[list] 匹配list列表中的一个字符,例如:[abc]、[a-z]、[a-zA-Z0-9]例子:[root@localhost ~]# ifconfig ens32 | grep "TX [pe]" TX packets 1776 bytes 206946 (202.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[^list] 匹配任意非list表中的一个字符,例如:[^a-z]、[^0-9]、[^A-Z0-9]例子:[root@localhost ~]# ifconfig ens32 | grep "TX [a-f]" TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@localhost ~]# ifconfig ens32 | grep "TX [^a-f]" TX packets 1814 bytes 210662 (205.7 KiB)\{n\} 匹配前面子表达式n次例子:[root@localhost ~]# grep "a 0\{2\}" a.txt aa 00aa bb 0000 aa 00a b a 000\{n,\} 匹配前面子表达式至少n次[root@localhost ~]# grep "a 0\{2,\}" a.txt aa 00aa bb 0000 aa 00a b a 000\{n,m\} 匹配前面子表达式最少n次,最大m次\< 词首牟定:固定词首\> 词未牟定:固定词尾 例子:[root@localhost ~]# grep "\" a.txt a b a 000| 转义字符 | 意义 |
|---|---|
| \a | 响铃(BEL) |
| \b | 退格(BS),将当前位置移到前一列 |
| \n | 换行(LF)将当前位置移到下一行的开头 |
| \r | 回车(CR)将当前位置移动到本行开头 |
| \t | 水平制表(HT)调到下一个TAB位置 |
| \v | 垂直制表(VT) |
| \ | 代表一个反斜杠字符"\" |
扩展正则表达式
+匹配前面子表达式1次及以上
? 匹配前面子表达式0次或者1次
() 将括号中的字符串作为一个整体
| 以或的方式匹配字符
Linux常用的文本处理工具
- grep 匹配,查询(过滤)
- sed 编辑(增加,删除,修改)
- awk 文本格式化(字符串提取)
注意事项
- Linux中正则一般以行为单位处理文件
- alias grep='grep --color=auto'
- 注意字符集,LANG=C
通配符
正则表达式和我们命令行中使用的通配符是有本质区别的。
通配符一般是处理文件名的
ls -l .txt
:任意长度任意字符串,属于通配符。
?:单个任意字符串,属于通配符。
grep命令的参数:
-v 排除匹配的内容(取反)
-E 支持扩展正则表达式=egrep
[root@localhost ~]# grep -Ev "^$|#" /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd"Listen 80Include conf.modules.d/*.conf-i 忽略大小写
[root@localhost ~]# cat a.txtaAAA[root@localhost ~]# grep -i "a" a.txt aAAA[root@localhost ~]# -o 只输出匹配的内容
[root@localhost ~]# grep -o "root" /etc/passwdrootroot-color=auto 匹配的内容显示颜色(用的不多 alias查看别名)
-n 在行首显示行号
[root@localhost ~]# grep -n "root" /etc/passwd1:root:x:0:0:root:/root:/bin/bash10:operator:x:11:0:operator:/root:/sbin/nologin43:admin:x:1000:1000:root:/home/admin:/bin/bash-q 匹配内容不显示(静默输出,一般写脚本的时候用而不输出到屏幕)
-w 将过滤条件当成单词来匹配
[root@localhost ~]# grep -w "bin" /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncadmin:x:1000:1000:root:/home/admin:/bin/bash[root@localhost ~]# grep "bin" /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin-c 只输出匹配行的计数
[root@localhost ~]# grep -c "root" /etc/passwd3
字符
表达式
正则
字符串
例子
位置
通配符
内容
输出
开头
文本
处理
普通
单个
命令
文件
斜杠
脚本
转义
制表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网佳科技有限公司
苏州找大状互联网科技有限公司
互联网科技巨头监管
杭州互联网科技公司
易通互联网络科技有限公司
广州凡科互联网科技
沃里互联网科技
互联网巨头投资的硬核科技
老年人脱离互联网科技的作文
开启互联网科技时代小说
互联网汽车科技小镇
互联网科技博主是什么意思
互联网经济与金融科技
湖北码尼互联网科技有限公司电话
允成互联网科技有限公司融资
高科技互联网发展前景如何
科技赋能视角下互联网保险发展
合肥互联网科技公司公章图片
郑州欣桑互联网科技有限公司
万物互联网智能科技
互联网科技海报
为想互联网科技怎么样
互联网 科技创新
杭州互联网科技公司
互联网科技媒体
云电互联网科技
中国互联网金融科技基金
北京大学互联网科技怎么样
现代互联网科技股
半导体是互联网高科技吗