5.1 文本处理与正则表达式进阶

5.1 文本处理与正则表达式进阶

一、文本处理概述

Linux 运维中的大量数据都以文本形式存在,例如:

  • 日志文件
  • 配置文件
  • 命令输出
  • 网络状态
  • 系统信息

Shell 文本处理通常依赖三类核心工具:

工具 作用
grep 文本过滤
sed 文本编辑与替换
awk 字段分析与格式化

三者通常通过管道组合使用,实现日志分析、配置修改和自动化处理。


二、grep 文本过滤

grep 用于搜索匹配内容,是 Linux 中最常见的文本过滤工具。

基本用法

id
1
grep "linux" test.txt

常用参数

显示行号

id
1
grep -n "linux" test.txt

忽略大小写

id
1
grep -i "linux" test.txt

反向匹配

id
1
grep -v "linux" test.txt

统计匹配数量

id
1
grep -c "linux" test.txt

三、管道与组合处理

管道 | 用于将前一个命令输出交给后一个命令处理。

示例

id
1
ps aux | grep nginx

排除 grep 自身进程

id
1
ps aux | grep nginx | grep -v grep

这种组合方式在进程检测、日志分析中非常常见。


四、正则表达式基础

正则表达式用于按规则匹配文本。

常见应用:

  • IP 地址匹配
  • 日志过滤
  • 配置提取
  • 手机号验证

基础元字符

任意字符

id
1
grep "l.nux" test.txt

. 表示任意单个字符。


行首匹配

id
1
grep "^linux" test.txt

行尾匹配

id
1
grep "mysql$" test.txt

五、扩展正则表达式

扩展正则需使用:

id
1
grep -E

或:

id
1
egrep

或匹配

id
1
grep -E "linux|mysql" test.txt

一个或多个字符

id
1
grep -E "a+" file.txt

零个或一个字符

id
1
grep -E "ab?" file.txt

六、sed 文本编辑

sed 主要用于文本替换、删除和批量修改。

基本替换

id
1
echo "linux" | sed 's/linux/shell/'

全局替换

id
1
echo "aaa aaa" | sed 's/aaa/bbb/g'

参数 g 表示全局替换。


文件原地修改

Linux:

id
1
sed -i 's/root/admin/g' user.txt

macOS:

id
1
sed -i '' 's/root/admin/g' user.txt

macOS 与 Linux 的 sed -i 参数存在差异,需要特别注意。


七、awk 字段分析

awk 擅长按列处理文本,广泛用于日志分析与统计。

基础输出

id
1
awk '{print $1}' score.txt

输出指定字段

id
1
awk '{print $1, $2}' score.txt

字段说明

符号 含义
$1 第一列
$2 第二列
$0 整行

条件过滤

id
1
awk '$2 >= 90 {print $1}' score.txt

表示第二列大于等于 90 时输出第一列。


八、实际运维场景

查看监听端口

id
1
netstat -an | grep LISTEN

查看 IP 地址

id
1
ifconfig | grep inet

推荐新系统使用:

id
1
ip addr

提取进程 PID

id
1
ps aux | grep nginx | grep -v grep | awk '{print $2}'

九、日志分析组合

Linux 运维强调“小工具组合”思想。

示例

id
1
cat log.txt | grep ERROR | awk '{print $1}'

处理流程:

id
1
2
3
读取日志
→ 过滤 ERROR
→ 提取字段

十、总结

文本处理是 Linux 运维与 Shell 自动化的核心能力。grep、sed、awk 配合正则表达式和管道机制,可以高效完成日志分析、配置修改、状态提取与批量数据处理。

核心内容包括:

  • grep 文本过滤
  • sed 文本替换
  • awk 字段分析
  • 正则表达式
  • 管道组合
  • 日志处理
  • 运维自动化文本分析

5.1 文本处理与正则表达式进阶
https://blog.sh462li.top/2026/06/05/Shell_learn/5.1 文本处理与正则表达式进阶/
作者
SHAO
发布于
2026年6月5日
许可协议