Shell 三剑客:grep、sed、awk 超全实战教程
前言从事 Linux 运维、SRE 工作日常离不开日志分析、文本过滤、数据处理。grep、sed、awk被称为 Shell 三剑客分工明确grep文本查找过滤擅长检索匹配行sed流编辑器擅长文本替换、行处理awk文本格式化、列处理小型编程语言一、grep —— 文本搜索工具核心作用根据正则表达式匹配筛选出符合条件的文本行。常用参数# -i 忽略大小写 # -n 显示行号 # -v 反向匹配不匹配 # -E 使用扩展正则等价egrep # -r 递归搜索目录文件 # -o 只输出匹配到的内容实战示例# 匹配包含error的行 grep error app.log # 忽略大小写显示行号 grep -in error app.log # 过滤注释行和空行 grep -vE ^#|^$ nginx.conf # 递归查找目录下包含timeout的文件 grep -r timeout /etc/nginx/ # 只打印匹配字段 grep -o [0-9]\\.[0-9]\\.[0-9]\\.[0-9]\ access.log二、sed —— 流式文本编辑器核心作用逐行处理文本擅长增删改查、字符串替换不修改原文件如需修改加-i 语法sed [参数] 寻址动作 file常用动作s/旧/新/替换p打印d删除a追加行i插入行常用参数# -i 直接修改原文件推荐测试先用 -i.bak 自动备份 # -n 只输出匹配行 # -E 扩展正则实战示例# 替换所有hello为world仅输出不改文件 sed s/hello/world/g test.txt # 直接修改文件同时生成备份 test.txt.bak sed -i.bak s/hello/world/g test.txt # 删除空行 sed /^$/d test.txt # 打印第5~10行 sed -n 5,10p test.txt # 在第3行后面追加内容 sed 3a new line content test.txt # 在第3行前面插入内容 sed 3i insert content test.txt⚠️ 注意sed -i操作文件前建议先不加 - i 预览结果防止误删配置三、awk —— 文本格式化语言最强核心作用按列处理文本分割字段、统计、格式化输出支持变量、判断、循环。 默认分隔符空格 / Tab 语法awk 条件{执行动作} file内置常用变量$0整行内容$1,$2...第 1 列、第 2 列NF当前行总列数NR行号FS输入分隔符OFS输出分隔符实战示例# 打印第一列和第三列 awk {print $1,$3} test.txt # 指定逗号为分隔符 awk -F , {print $2} data.csv # 打印行号、最后一列 awk {print NR,$NF} test.txt # 筛选第3列大于100的数据 awk $3 100 {print $0} test.txt # 多条件匹配 awk $1root $30 /etc/passwd # BEGIN 初始化处理文本前执行 awk BEGIN{FS:;print 用户名}{print $1} /etc/passwd四、三剑客场景区分重点工具定位适用场景grep查找只需要筛选、检索行单纯过滤sed行处理、替换整行删除、字符串全局替换、插入行awk列处理、计算截取字段、数值运算、格式化输出组合使用经典案例# 日志过滤找出error日志提取IP去重统计 grep error access.log | awk {print $1} | sort | uniq -c # 过滤配置文件去掉注释空行替换端口号 grep -vE ^#|^$ nginx.conf | sed s/80/8080/g五、常见踩坑总结grep 不加-E部分正则符号需要转义sed-i直接修改文件生产环境优先备份awk 默认分隔符是连续空格不是单个空格尽量组合使用先 grep 筛选sed 替换awk 解析字段

相关新闻

深入解析802.11协议栈:从PHY/MAC到MLME/PLME/SME的无线网络核心架构

深入解析802.11协议栈:从PHY/MAC到MLME/PLME/SME的无线网络核心架构

1. 无线网络通信的基石:从标题看802.11协议栈的核心看到“802.11 MAC子层&PHY子层 、MLME&PLME、SME”这个标题,很多刚接触Wi-Fi协议开发或网络优化的朋友可能会觉得这是一堆枯燥的缩写。但在我看来,这恰恰是理解任何无线网络设备——…

2026/10/12 23:31:24 阅读更多 →
QQ邮箱集成mail.ru邮件:IMAP/POP3协议选择与长期管理策略

QQ邮箱集成mail.ru邮件:IMAP/POP3协议选择与长期管理策略

你有没有遇到过这样的场景:一个重要的项目通知、一份关键的学术投稿确认信,或者一封来自海外合作伙伴的邮件,静静地躺在你的 mail.ru 邮箱里。你每天要登录好几个邮箱,来回切换,总担心错过什么。你心想,要…

2026/10/12 4:21:10 阅读更多 →
Windows Server管理员密码恢复实战指南:从原理到应急操作

Windows Server管理员密码恢复实战指南:从原理到应急操作

1. 项目概述:当服务器大门紧闭时在IT运维和系统管理的日常里,最让人心头一紧的场景之一,莫过于面对一台无法登录的Windows Server。无论是用于承载关键业务应用的物理服务器,还是云端托管的虚拟机,一旦忘记了管理员密码…

2026/10/6 6:09:32 阅读更多 →

最新新闻

Chrome 72绿色免安装版:搭建、自动化配置与排错实战指南

Chrome 72绿色免安装版:搭建、自动化配置与排错实战指南

简介:这份绿色免安装版Chrome 72.0.3590.0,面向需要在无管理员权限或临时环境下快速使用浏览器的用户,解压到任意目录即可直接运行,无需写注册表、不污染系统文件夹,也方便在多个设备间拷贝迁移,适合公共电…

2026/10/13 7:30:04 阅读更多 →
蓝桥杯突击第一天:简单模拟+set/map,三小时拿稳基础分

蓝桥杯突击第一天:简单模拟+set/map,三小时拿稳基础分

距离比赛没几天了,才开始翻开题单的人不在少数。“蓝桥杯抱佛脚第一天”这个标题,说白了就是临时突击。可突击也得有章法,第一天最该干的事情不是硬啃动态规划,也不是去背那些根本用不上的高级数据结构,而是把三类东西…

2026/10/13 7:30:04 阅读更多 →
AutoIt脚本工具详解:实现Windows自动化与GUI测试

AutoIt脚本工具详解:实现Windows自动化与GUI测试

简介:这套 AutoIt v3.3.6.1 绿色汉化特别版是一份面向自动化脚本新手与运维人员的完整工具包。AutoIt 基于 BASIC 风格语法,能在 Windows 图形界面下模拟击键、鼠标移动和窗口/控件操作,适合批量配置 PC、完成重复性任务以及扩展其他语言的自…

2026/10/13 7:30:04 阅读更多 →
Flutter在OpenHarmony上实现盲盒抽奖与地址管理的实战指南

Flutter在OpenHarmony上实现盲盒抽奖与地址管理的实战指南

前阵子接了个跑在 OpenHarmony 上的盲盒抽奖App需求,花了大概两周时间从环境搭建干到上线,中间把地址管理也一起做了。用 Flutter for OpenHarmony 来写,最直接的收获是不用维护两套界面代码,同一条业务逻辑既能跑在普通移动端&am…

2026/10/13 7:30:04 阅读更多 →
RAID10单盘失效降级处理全流程:从故障确认到重建监控

RAID10单盘失效降级处理全流程:从故障确认到重建监控

凌晨两点手机突然开始连续震动,不用看都知道是服务器告警:某台存储节点的一块磁盘掉线,RAID10阵列进入降级状态。说实话,干了这么多年运维,这种告警永远让人心头一紧——不是怕数据丢,而是怕处理顺序错了&a…

2026/10/13 7:30:04 阅读更多 →
IDEA中Lombok不生效?一文看透原因与解决方案

IDEA中Lombok不生效?一文看透原因与解决方案

1. 这个问题到底长什么样:先对号入座先说个真实场景。你从仓库拉了一个 Spring Boot 项目,代码里全是Data、Slf4j、Builder这类注解,编译的时候 IDEA 报红,getter/setter找不到,log变量也飘红,但mvn compil…

2026/10/13 7:29:04 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →