当前位置: 首页 > article >正文

Linux 文本处理三剑客(日志 / 配置分析)

前言在 Linux 服务器工作中90% 的问题都要靠看日志、改配置解决。面对动辄几万行的日志文件手动翻阅效率极低而 grep、sed、awk 这三个工具就是 Linux 下处理文本的 “终极三剑客”。掌握它们你就能实现快速过滤、批量替换、数据统计真正做到高效定位问题。一、为什么要学三剑客在服务器场景中你经常会遇到这些需求从 10 万行日志里找出所有报错行批量修改配置文件里的 IP、端口统计访问日志里出现最多的 IP截取日志中的某一列、某一段内容过滤掉无用信息只保留关键数据如果靠手动打开文件不仅慢还容易出错。而三剑客可以在命令行直接完成无需打开编辑器支持管道、脚本自动化是运维必备核心技能。三剑客定位简单总结grep过滤行—— 抓出包含关键词的行sed流编辑—— 按行替换、删除、插入awk切片统计—— 按列截取、计算、统计二、grep最实用的文本行过滤工具grep 用于在文件或输出中查找包含指定字符串的行是日常排查错误用得最多的命令。基本语法bash运行grep [选项] “关键词” 文件名最常用选项-i忽略大小写-n显示行号-v反向匹配排除-w全词匹配-r递归搜索目录下所有文件-E支持扩展正则等价于 egrep-c只输出匹配行数高频实战示例bash运行查找包含 error 的行并显示行号grep -n “error” app.log忽略大小写查找grep -i “fail” app.log排除注释行和空行查看配置常用grep -v “^#” nginx.conf | grep -v “^$”递归在 /var/log 下找包含 timeout 的文件grep -r “timeout” /var/log/统计错误行数grep -c “ERROR” app.log4. 结合管道使用极常用bash运行ps aux | grep nginxdmesg | grep -i usbcat access.log | grep “404”一句话总结 grep想快速找到某类行用 grep。三、sed流式文本编辑神器sed 是非交互式编辑器不需要打开文件就能直接修改内容适合批量替换、删除行、插入行尤其适合写自动化脚本。基本语法bash运行sed [选项] ‘指令’ 文件名常用选项-n只打印匹配的行-i直接修改文件内容重要-e多指令编辑最常用操作查找替换格式plaintextsed ‘s/旧内容/新内容/修饰符’ 文件名s 替换g 全局替换默认只替换每行第一个示例bash运行替换端口 80 为 8080只显示不改文件sed ‘s/80/8080/g’ nginx.conf直接修改文件危险建议先备份sed -i ‘s/127.0.0.1/0.0.0.0/g’ config.ini替换带 / 的路径用 # 做分隔符避免冲突sed -i ‘s#/tmp#/data/tmp#g’ app.log4. 按行操作bash运行打印第 10 行sed -n ‘10p’ app.log删除第 5 行sed -i ‘5d’ file.txt删除空行sed -i ‘/^$/d’ file.txt在第 2 行后插入内容sed -i ‘2a add new line’ file.txt一句话总结 sed批量替换、删行、插行用 sed。四、awk按列切割与数据统计大师awk 是三剑客中最强大的它把每行按列字段 切割支持变量、判断、循环适合日志统计、IP 统计、流量计算等。基本语法bash运行awk ‘条件 {动作}’ 文件名默认分隔符空格、制表符内置变量$0整行内容$1第一列$2第二列NF总列数NR行号FS字段分隔符高频实战示例bash运行打印第 1、3 列awk ‘{print $1, $3}’ access.log过滤第 9 列是 404 的行awk ‘$9 404 {print}’ access.log统计访问最多的 IP经典awk ‘{print $1}’ access.log | sort | uniq -c | sort -nr统计总流量大小求和awk ‘{sum $10} END {print sum}’ access.log指定分隔符为 :awk -F ‘:’ ‘{print $1, $3}’ /etc/passwd4. 简单判断bash运行awk ‘$3 100 {print $1}’ file.txt一句话总结 awk要按列处理、统计、求和、去重用 awk。五、正则表达式基础三剑客通用三剑客威力巨大很大一部分来自正则。入门掌握几个就够用^ 行开头$ 行结尾. 任意单个字符前面字符出现任意次[0-9] 数字[a-z] 小写字母示例bash运行找 IPgrep -E “[0-9].[0-9].[0-9].[0-9]” app.log找空行grep “^$” app.log找注释行grep “^#” nginx.conf六、三剑客综合实战场景场景 1快速排查服务报错bash运行tail -n 100 /var/log/nginx/error.log | grep -i “error”场景 2批量修改配置文件bash运行sed -i ‘s/server_name localhost/server_name example.com/g’ nginx.conf场景 3统计访问量最高的接口bash运行awk ‘{print $7}’ access.log | sort | uniq -c | sort -nr | head -10场景 4清理无用日志行bash运行sed -i ‘/debug/d’ app.log场景 5查看系统用户列表bash运行awk -F ‘:’ ‘{print $1}’ /etc/passwd | head -10七、学习三剑客的正确方法不要一开始就啃复杂正则先练会常用固定用法能解决问题就行。先预览再修改使用 sed 时先不加 -i 看效果确认无误再替换。多用管道组合grep awk sort 是排查日志的黄金组合。把常用命令写成笔记遇到典型日志直接保存成自己的模板。八、常见误区提醒grep 不是越复杂越好简单关键词能解决就不用正则。sed -i 会直接覆盖文件重要文件先备份新手尤其注意。awk 从 $1 开始不是 $0很多初学者第一列写成 $0 导致出错。日志太大不要直接 cat用 tail、less、head 分段查看。九、总结Linux 文本处理三剑客是服务器效率的分水岭grep 负责 “找行”快速定位关键词sed 负责 “改文本”批量替换删行awk 负责 “切列统计”分析数据与日志它们可以单独使用也可以通过管道 | 组合成强大的一行命令实现自动化排查、日志分析、配置修改。掌握这三个工具你在 Linux 下处理文本的效率会提升 10 倍以上真正具备服务器运维的基础能力。下一篇我们进入 Shell 脚本编程入门学习把这些命令写成自动化脚本实现一键部署、备份、巡检。

相关文章:

Linux 文本处理三剑客(日志 / 配置分析)

前言 在 Linux 服务器工作中,90% 的问题都要靠看日志、改配置解决。面对动辄几万行的日志文件,手动翻阅效率极低,而 grep、sed、awk 这三个工具,就是 Linux 下处理文本的 “终极三剑客”。掌握它们,你就能实现快速过滤…...

为什么你的AI应用总在上线后崩塌?SITS2026披露3类被忽视的“非功能性AI缺陷”及防御性工程实践

第一章:SITS2026专家解读:AI原生研发的核心挑战 2026奇点智能技术大会(https://ml-summit.org) AI原生研发并非简单地将大模型API嵌入传统系统,而是重构整个软件生命周期——从需求建模、架构设计、代码生成到验证运维,均需以“模…...

MIT Cheetah机器人刚体模型详解:从DH参数到足端位置计算的保姆级推导

MIT Cheetah机器人刚体建模实战:从坐标系定义到足端轨迹计算的完整推导 在四足机器人研究领域,MIT Cheetah系列机器人以其卓越的运动性能和创新设计闻名。对于想要深入理解其运动控制原理的工程师和学生来说,掌握其刚体建模方法是必经之路。本…...

ESP32以太网异步DNS服务器库:LwIP事件驱动与PHY硬件抽象

1. 项目概述AsyncDNSServer_ESP32_Ethernet是一款专为 ESP32 系列微控制器(含 ESP32-S2/S3/C3)设计的全异步 DNS 服务器库,面向基于 LwIP 协议栈、搭载 W5500、W6100 或 ENC28J60 以太网物理层芯片的嵌入式系统。该库并非从零构建&#xff0c…...

MPU9150 DMP库深度解析:嵌入式运动协处理器工程实践

1. MPU9150_DMP库深度解析:嵌入式系统中DMP运动协处理器的工程化应用MPU9150是InvenSense公司于2012年推出的集成六轴惯性测量单元(6-DoF IMU)与三轴电子罗盘(3-DoF Magnetometer)的高精度MEMS传感器。其核心价值不仅在…...

PCA9505/06工业级I²C IO扩展驱动设计与实战

1. PCA9505/06 库概述:面向工业级IC端口扩展的底层驱动设计PCA9505与PCA9506是NXP推出的40位IC总线IO扩展器,专为资源受限但需高密度数字信号管理的嵌入式系统设计。该库并非简单封装Arduino Wire接口的轻量级适配层,而是一套具备完整寄存器映…...

OpenClaw学习总结_IV_认证与安全_4:Multi-Account Patterns详解

OpenClaw IV. 认证与安全(4)Multi-Account Patterns本篇目标:把“一个人/一个团队同时拥有多个账号(或多个 Bot / 多个 Workspace / 多个 Provider credentials)”时,OpenClaw 侧应该怎么建模、怎么隔离、怎…...

ESP32 RMT硬件实现双向DShot协议驱动

1. 项目概述DShotRMT 是一款专为 ESP32 微控制器设计的高性能 DShot 协议驱动库,基于 ESP-IDF v5.5.x 的 RMT(Remote Control)外设全新 API(rmt_tx.h/rmt_rx.h)构建。该库并非简单封装,而是深度耦合硬件时序…...

OpenClaw学习总结_IV_认证与安全_3:Authorization与Policies详解

IV. 认证与安全 - 3. Authorization 与 Policies 📍 课程位置 阶段:IV. 认证与安全 课序:第 3 课 前置知识:IV-2. Authentication 后续课程:IV-4. Multi-Account Patterns🎯 本课核心问题(你不懂…...

告别AD转Cadence的迷茫:OrCAD Capture CIS 16.6新建工程与环境设置保姆级指南

告别AD转Cadence的迷茫:OrCAD Capture CIS 16.6新建工程与环境设置保姆级指南 从Altium Designer切换到Cadence OrCAD,就像从自动挡汽车换到手动挡——虽然最终目的地相同,但操作方式截然不同。我至今记得第一次打开OrCAD时那种无处下手的窘迫…...

如何处理phpMyAdmin提示配置文件读取失败_文件属组与读写权限调整

根本原因是PHP进程无法读取config.inc.php文件,主因是系统级权限问题:Web服务器用户(如www-data)无读取权限,或文件权限为666/660等不安全组合,或SELinux/AppArmor拦截,或符号链接目标权限错误。…...

CEA-Leti 和 CEA-List 已宣布与 Powerchip 半导体制造公司 (PSMC) 合作

合作将利用 PSMC 的 3D 堆叠和中介层技术来集成下一代 AI 设备两家法国旗舰研究机构 CEA-Leti 和 CEA-List 已宣布与台湾代工厂 Powerchip 半导体制造公司 (PSMC) 建立合作关系。该合作将利用 CEA-List 的 RISC-V 设计专业知识和 CEA-Leti 的硅光子学专业知识(包括微…...

“三合一”光电二极管被中国科研团队发明

这项研究解决了一个长期存在的硬件瓶颈:传统相机需要把“感光”、“存储”和“计算”分开做,导致体积大、耗电多。中国科学技术大学孙海定教授团队开发了一种“三合一”光电二极管,它能在一个器件里同时完成这三项任务,就像人眼和…...

告别“看图说话”:Qwen3-VL如何用平方根重加权与时间戳文本,搞定长视频与图文交错文档?

Qwen3-VL技术解析:平方根重加权与时间戳文本如何重塑多模态理解 当一段长达两小时的监控视频需要快速定位关键帧,或是一份百页技术文档中的图表需要即时解读时,传统多模态模型往往陷入"视觉失焦"或"文本过载"的困境。Qwe…...

Spirent TestCenter实战:手把手教你用SAPEE回放MySQL流量做性能压测(附完整配置截图)

Spirent TestCenter深度实战:基于SAPEE的MySQL流量回放与极限性能压测方法论 在当今高并发数据库应用场景中,准确评估MySQL服务器的真实处理能力已成为架构设计的关键环节。传统基准测试工具往往难以模拟真实业务流量特征,而基于Spirent Test…...

FastRGB嵌入式LED库:AVR平台纳秒级RGB控制框架

1. FastRGB库深度解析:面向嵌入式系统的高性能可寻址RGB LED控制框架FastRGB是一个专为资源受限嵌入式平台设计的现代、面向对象、轻量级可寻址RGB LED控制库。其核心目标并非追求通用性,而是针对特定MCU架构(尤其是8位AVR平台)进…...

FastTimer嵌入式时间切片调度框架解析

1. FastTimer 库深度解析:嵌入式时间管理的工程化实践在嵌入式系统开发中,时间管理是底层驱动、状态机调度、周期性采样与事件分发的核心基础设施。传统millis()或micros()轮询方式虽简单,但存在精度漂移、逻辑耦合度高、多级周期嵌套困难等工…...

实战解析:基于unidbg的APP逆向与关键算法模拟执行

1. 为什么需要unidbg进行APP逆向分析 当你尝试分析一个移动应用的核心算法时,最头疼的问题是什么?我猜90%的开发者都会说:无法直接运行和调试so文件中的native代码。传统的逆向方法要么需要真机环境,要么要处理复杂的交叉编译问题…...

Vue3 解决表格切换闪烁的问题

表格切换闪烁的原因:el-table-column 没有固定宽度,导致切换标签页时表格重新计算列宽产生视觉变化(闪烁形象)表格实际需求的分析:需要实现自动适应视窗宽度,表格至终不会有横向滚动条最佳解决方案&#xf…...

从零开始:手把手教你搭建与操作主流向量数据库

1. 为什么你需要一个向量数据库? 想象一下你正在开发一个智能相册应用。当用户上传一张猫咪照片时,系统需要从数百万张图片中快速找到所有相似的猫咪照片。传统数据库只能做精确匹配(比如"文件名cat001.jpg")&#xff0…...

ADXL335模拟加速度计Arduino驱动库详解

1. 项目概述7Semi ADXL335 Accelerometer 是一款面向嵌入式平台的轻量级模拟加速度传感器驱动库,专为 ADXL335 这一经典三轴模拟输出 MEMS 加速度计设计。该库并非直接操作数字总线(如 IC 或 SPI),而是通过标准 ArduinoanalogRead…...

Arduino多平台临界区封装库:轻量级中断屏蔽RAII实现

1. 项目概述107-Arduino-CriticalSection是一个面向多平台 Arduino 生态的轻量级临界区(Critical Section)封装库。其核心目标并非实现全新的同步原语,而是在异构硬件抽象层(HAL)之上提供统一、可移植、零依赖的中断屏…...

7-Zip-JBinding终极指南:在Java中无缝集成7-Zip压缩解压能力

7-Zip-JBinding终极指南:在Java中无缝集成7-Zip压缩解压能力 【免费下载链接】sevenzipjbinding 7-Zip-JBinding 项目地址: https://gitcode.com/gh_mirrors/se/sevenzipjbinding 你是否曾为Java项目中处理各种压缩格式而头疼?当需要支持7z、RAR、…...

终极LyricsX歌词配置指南:解锁macOS多源歌词同步的完整方案

终极LyricsX歌词配置指南:解锁macOS多源歌词同步的完整方案 【免费下载链接】LyricsX 🎶 Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX LyricsX作为macOS平台上功能最强大的歌词同步应用,通过…...

Unity2021安卓打包避坑:告别Assets/Plugins/Android/res,拥抱AAR与Android Library新规

1. 为什么Unity2021要废弃Assets/Plugins/Android/res? 如果你最近把Unity项目升级到2021版本,打包安卓应用时突然看到那个刺眼的OBSOLETE报错,先别慌。这个改动背后其实藏着Unity团队的大棋。我去年接手一个老项目迁移时就踩过这个坑&#x…...

高性能EPUB转换引擎:Kepubify实现零延迟Kobo格式批量处理

高性能EPUB转换引擎:Kepubify实现零延迟Kobo格式批量处理 【免费下载链接】kepubify Fast, standalone EPUB to Kobo EPUB conversion tool. 项目地址: https://gitcode.com/gh_mirrors/ke/kepubify Kepubify是一款专为Kobo电子阅读器设计的高性能EPUB格式转…...

ESP8266轻量MQTT Broker:零依赖离线直连实现

1. 项目概述MQTTbroker 是一款专为 ESP8266 设计的轻量级嵌入式 MQTT 消息代理(Broker)实现,其核心目标是构建一个零依赖、离线可用、端到端直连的物联网本地通信枢纽。它并非传统意义上的全功能云级 Broker(如 Mosquitto 或 EMQX…...

Arduino DHT11极简驱动库:单总线时序鲁棒性设计

1. 项目概述SL002_DHT11 是一款专为 Arduino 平台设计的轻量级 DHT11 温湿度传感器驱动库。其核心定位是“极简可用”——在保证功能完整性的前提下,最大限度降低资源占用与使用门槛。该库不依赖任何高级抽象层(如 Wire.h 或 SPI.h)&#xff…...

omniMath:嵌入式轻量级数学表达式求值与单位转换库

1. omniMath 库深度解析:面向嵌入式系统的轻量级数学表达式求值与单位转换引擎1.1 库定位与工程价值omniMath 是一款专为 Arduino 及兼容平台(如 Raspberry Pi Pico、ESP32、STM32duino)设计的嵌入式数学计算库。其核心价值不在于替代浮点协处…...

Unity新手避坑指南:从零搭建第一个3D场景,我踩过的那些坑都帮你填好了

Unity新手避坑指南:从零搭建第一个3D场景的实战经验 第一次打开Unity时,那个空荡荡的3D场景窗口既令人兴奋又让人不知所措。作为一个过来人,我清楚地记得自己是如何在无数个深夜与各种"坑"作斗争的。这篇文章不是又一篇基础操作手…...