Linux 运维必学:正则表达式核心元字符与 grep 实战精讲

技术弄巷
前言
在 Linux 运维日志分析、文本过滤、数据提取、批量替换等场景中,正则表达式是效率最高的文本匹配工具。它由一组特殊的元字符组成,能精准匹配具有相同特征的字符串,配合 grep、sed、awk 等工具使用,可大幅提升文本处理效率。
本文聚焦运维最常用的正则基础语法,清晰拆解字符匹配、次数匹配、位置匹配、分组四大核心,零基础也能快速上手。
一、正则表达式概述
核心作用
用元字符组合成规则,批量匹配具有相同特征的文本内容。
常用命令
grep [选项] '匹配规则' 文件名1 文件名2
二、核心元字符详解
1. 匹配单个字符
精准定位某一个字符,是正则最基础的匹配能力。
| | |
|---|
. | | grep "r..t" /etc/passwd |
[abc] | | [akt] |
[a-z] | | |
[A-Z] | | |
[a-zA-Z0-9] | | |
[^a-z] | 排除 | |
[[:space:]] | | grep "a[[:space:]]t" /tmp/file01 |
2. 匹配字符出现次数
控制前一个字符重复出现的次数,实现模糊批量匹配。
| | |
|---|
* | | ab* |
\? | | ab\? |
\+ | | ab\+ |
\{3\} | | ab\{3\} |
\{2,5\} | | |
\{2,\} | | |
3. 分组匹配
将多个字符视为一个整体进行次数匹配。
- 示例:
\(ab\)\+→ 匹配 ab、abab、ababab…
4. 匹配字符位置
限定字符串出现在行首或行尾,常用于精准筛选。
核心要点总结
.匹配任意单个字符,[]匹配指定范围,[^]表示取反。*\( \)^- 配合
grep使用,是运维日志过滤、数据提取的最高效组合。
结尾互动
正则表达式是 Linux 运维的底层核心技能,学好它,日志分析、文本处理、脚本编写都会事半功倍。
如果这篇干货对你有帮助,欢迎点赞、在看、转发给身边的运维朋友!
关注我,持续更新 Shell 脚本、正则实战、三剑客精讲、自动化运维等硬核内容,一起高效运维,少走弯路!

